/* Makes a call to the Google+ API to retrieve the user's basic profile info. An authorized OAuth2 client is required. */ function getUserProfile(client, cb) { var plus = googleapis.plus('v1'); plus.people.get({ userId: 'me', auth: client }, cb); }
exports.createFile = function(req, res) { var plus = google.plus('v1'); var drive = google.drive('v2'); var OAuth2 = google.auth.OAuth2; var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL); oauth2Client.setCredentials({ access_token: req.user.additionalProvidersData.google.accessToken, refresh_token: req.user.additionalProvidersData.google.refreshToken }); oauth2Client.refreshAccessToken(function(err, tokens) { // your access_token is now refreshed and stored in oauth2Client // store these new tokens in a safe place (e.g. database) //console.log('!!!!', tokens); oauth2Client.setCredentials(tokens); // insertion example drive.files.insert({ resource: { title: 'refreshToken Folder', mimeType: 'application/vnd.google-apps.folder' }, auth: oauth2Client }, function(err, response) { if (err) { console.log('[create file] - An error occured', err); return; } res.jsonp(response); }); }); };
Authentication.prototype.getUserInfo = function(client, next) { var plus = googleapis.plus('v1'); return plus.people.get({ userId: 'me', auth: client }, next); };
app.post('/authenticate', function (req, res) { var plus = google.plus('v1'); var OAuth2 = google.auth.OAuth2; var client_id = '273207854014-32vo8nirrr75jti027sub8d92secgccc.apps.googleusercontent.com'; var client_secret = '_ejvUbbHFfaxgIUeLAcr-bj_'; var redirect_url = 'postmessage'; var oauth2Client = new OAuth2(client_id, client_secret, redirect_url); var code = req.body.authResult; oauth2Client.getToken(code, function(err, tokens) { if(err)console.log(err); oauth2Client.setCredentials(tokens); plus.people.get({ userId: 'me', auth: oauth2Client }, function(err, response) { if (err) console.log(err); response.accesstoken = code; var token = jwt.sign(response, secret, { expiresInMinutes: 60*5 }); db.collection('users').update({ googleid: response.id }, {$set: {googleid: response.id, google: response}}, {upsert:true}).then(function(err){ if (err) console.log(err); }); db.collection('users').findOne({googleid:response.id}).then(function(user){ res.json({ response: user, token: token}); }); }); }); });
exports.gsGet = function(req, res){ //res.jsonp(req.user.additionalProvidersData.google.accessToken); //res.jsonp(req.user); var google = require('googleapis'); var OAuth2 = google.auth.OAuth2; var plus = google.plus('v1'); var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL); oauth2Client.setCredentials({ access_token: req.user.additionalProvidersData.google.accessToken, refresh_token: req.user.additionalProvidersData.google.refreshToken, expiry_date:(new Date()).getTime()*1000 }); oauth2Client.refreshAccessToken(function(err, tokens) { // your access_token is now refreshed and stored in oauth2Client // store these new tokens in a safe place (e.g. database) console.log('!!!!', tokens); oauth2Client.setCredentials(tokens); plus.people.get({ userId: 'me', auth: oauth2Client }, function(err, profile) { if (err) { console.log('[geGet]-An error occured', err); return; } res.jsonp(profile); }); }); //plus.people.get({ userId: 'me', auth: oauth2Client }, function(err, profile) { // if (err) { // console.log('An error occured', err); // return; // } // res.jsonp(profile); // }); }
googleRouter.get("/tokens", function(req, res) { var code = req.query.code; var plus = googleapis.plus('v1'); // console.log(code); oauth2Client.getToken(code, function(err, tokens) { if (err) { console.log(err); res.send(err); return; } // console.log(tokens); // EJEMPLO DE OBTENER LOS DATOS DE GOOGLE + DEL USUARIO QUE HA HECHO LOGIN. oauth2Client.setCredentials(tokens); googleapis.options({ auth: oauth2Client }); plus.people.get({ userId: 'me', auth: oauth2Client }, function(err, response) { if (err) { console.log(err); res.send(err); return; } console.log(" ------------- Detalles de usuario ---------------"); console.log("id: " + response.id); console.log("Name: " + response.displayName); console.log("Image url: " + response.image.url); }); // EJEMPLO DE BÚSQUEDA DE UN VIDEO EN YOUTUBE. var youtube = googleapis.youtube({ version: 'v3', auth: oauth2Client }); youtube.search.list({ part: 'snippet', q: 'rubius', maxResults: 1 }, function(err, response) { console.log("----------- Test buscar video ------------"); if (err) { console.log(err); res.send(err); return; } console.log(response.items); }); res.send("check node console for access tokens and personal information"); }); });
return new Promise((resolve, reject) => { var plus = google.plus({version: 'v1', auth: that.client}); plus.people.get({'userId': 'me'}, function(err, result) { if (err) { reject(err); } resolve(result.id); }); });
oauth2client.getToken(code, function(err, tokens){ oauth2client.setCredentials(tokens); google.options({ auth: oauth2client }); req.session.plus = google.plus({ version: 'v1' }); req.session.drive = google.drive({ version: 'v2' }); req.session.admin = google.admin({ version: 'directory_v1' }); req.session.plus.people.get({ userId: 'me' }, function(err, user){ req.session.email = user.emails[0].value; req.session.admin.users.get({userKey: req.session.email}, function(err, userinfo){ req.session.username = userinfo.name.givenName; req.session.isLoggedIn = true; req.isAdmin = true; res.redirect('/'); }); }); });
oauth2_client.getToken(auth_code, function(err, tokens) { if (err) { res.send(500, util.inspect(err)); } else { oauth2_client.setCredentials(tokens); google.plus('v1').people.get({ userId: 'me' }, function(err, response) { if (err) { console.log(err); res.send(500, err); } else { console.log(response); user_list.createUser({ id: response.id, google_auth: tokens, }); saveSession(res, next, response.id); } }); } });
Strategy.prototype.loadProfile = function(context, callback) { if (context.fetchProfile) { var plus = googleapis.plus('v1'); var auth = null; if (context.credentials.access_token) { auth = new googleapis.auth.OAuth2(context.clientId, context.clientSecret); auth.credentials = context.credentials; } else { auth = context.apiKey; } var request = plus.people.get({ userId: context.profile.id, auth: auth }, function(err, data) { if(!err) { context.profile = extend(context.profile, data); } callback(err, context); }); } else { callback(null, context); } };
getUserProfile: function () { let that = this; let gmail = google.gmail('v1'); let plus = google.plus('v1'); let userObj = {}; return new Promise(function (resolve) { return gmail.users.getProfile({ userId: 'me', auth: that.oauth2Client }, function (err, user) { userObj.email = user.emailAddress; return resolve(); }); }) .then(function () { return new Promise(function (resolve) { return plus.people.get({ userId: 'me', auth: oauth2Client }, function (err, response) { userObj.fullName = response.displayName; userObj.googleId = response.id; return resolve(userObj); }); }); }); }
var getGoogleplusUser = function (req, res, tokens) { debug(tokens); var oauth2Client = new google.auth.OAuth2(config.clientId, config.clientSecret, config.redirectUrl); oauth2Client.setCredentials(tokens); google.plus('v1').people.get({ userId: 'me', auth: oauth2Client }, function(err, people) { if (!err) { var user = { id: undefined, name: people.displayName, googleId: people.id }; returnHome(req, res, user); } else { console.error(err); res.status(500).end(); } }); };
oauth2Client.getToken(code, function (err, tokens) { if(err) { console.log(err) } else { //set credentials. not entirely sure what this does but necessary for google plus //when a person gives access to their google calendar, we also make a request to google plus //with their oauth2client in order to get their email address which is then saved in the user object //in mongodb. oauth2Client.setCredentials(tokens); console.log("this is tokens", tokens); var plus = google.plus('v1'); plus.people.get({auth: oauth2Client, userId: 'me'}, function(err, person){ if(err){ console.log(err) } else { //when a person console.log("this is googleplus person object", person); var tempEmail = person.emails[0].value; let auth_id = JSON.parse(decodeURIComponent(req.query.state)); var newUser = new User({ token: tokens, slackID: slackID, //TODO: ALSO store slackname so that you can easily add your own meetings to your calendars too auth_id: auth_id.auth_id, email: tempEmail, pendingInvites: [] }); newUser.save() .then( () => res.status(200).send("Your account was successfuly authenticated")) .catch((err) => { console.log('error in newuser save of connectcallback'); res.status(400).json({error:err}); }) } }); } });
'use strict'; var google = require('googleapis'), mongoose = require('mongoose'), googleOAuth2 = google.auth.OAuth2, googlePlus = google.plus('v1'), jwt = require('jsonwebtoken'); var User = mongoose.model('User'); var config = require('../config/auth'); var authKey = config.google; var clientGoogleOAuth2 = new googleOAuth2(authKey.clientId, authKey.secret, authKey.redirectUrl); exports.login = function(req, res, next){ var code = req.body.code; if (code) { clientGoogleOAuth2.getToken(code, function(err, token){ if (err) { next(err); } else { clientGoogleOAuth2.setCredentials(token); googlePlus.people.get({ userId: 'me', auth: clientGoogleOAuth2 }, function(err, gPlusUserInfo){ var email = gPlusUserInfo.emails[0].value; var username = gPlusUserInfo.displayName;
oauth2Client.getToken(data.code, function(err, tokens) { // Now tokens contains an access_token and an optional refresh_token. Save them. if(!err) { //lookup user oauth2Client.setCredentials({ access_token: tokens.access_token, refresh_token: tokens.refresh_token }); var plus = google.plus('v1'); plus.people.get({ userId: 'me', auth: oauth2Client }, function(err, response) { if(err) { ret.msg +=err; deferred.reject(ret); } else { //do user import & login var user ={}; //name if(response.name !==undefined) { if(response.name.givenName !==undefined) { user.first_name =response.name.givenName; } if(response.name.familyName !==undefined) { user.last_name =response.name.familyName; } } //gender if(response.gender !==undefined) { user.gender =response.gender; } //email if(response.emails !==undefined && response.emails.length >0) { user.email =response.emails[0].value; } //age: do not bother with age since we only get a "range" from google //image if(data.pull_pic) { if(response.image !==undefined && response.image.url !==undefined) { user._imageUrl =response.image.url; } } var vals ={ type: 'google', user: user, socialData: { id: response.id, token: tokens.access_token, response_token: tokens.response_token } }; vals.pic_directory =data.pic_directory; //pass through AuthMod.socialLogin(db, vals, {}) .then(function(retLogin) { deferred.resolve(retLogin); }, function(err) { deferred.reject(err); }); } }); } });
'use strict'; /** * Created by tpineau */ var extend = require('extend'); var async = require("async"); var googleapis = require('googleapis'); var keys = require('./../keys.json'); var plus = googleapis.plus('v1'); var googleKey = keys.googleKey; function statusSearch(keyword, num, opt_args, callback) { // Fonction de recherche d'activités (statuts) sur Google+ // Informations sur les arguments optionnels (opt_args): https://developers.google.com/+/api/latest/activities/search?hl=fr if (typeof opt_args === 'function') {callback = opt_args; opt_args = {};} var args = {query: keyword, maxResults: num, auth: googleKey}; if (opt_args.orderBy === undefined) {opt_args.orderBy = 'recent';} if (opt_args.pageToken === undefined) {opt_args.pageToken = null;} extend(args, opt_args); go('activities', args, callback); } function usersSearch(keyword, num, opt_args, callback) { // Fonction de recherche d'utilisateurs ou de pages sur Google+ // Informations sur les arguments optionnels (opt_args): https://developers.google.com/+/api/latest/people/search?hl=fr if (typeof opt_args === 'function') {callback = opt_args; opt_args = {};} var args = {query: keyword, maxResults: num, auth: googleKey};
const path = require("path"); const fs = require("fs"); const express = require("express"); var router = module.exports = exports = new express.Router(); //데이터베이스 관련 모듈 객체 const Database = require("./sequelize"); const User = Database.User; //google api 관련 파일 const google = require("googleapis"); var OAuth2 = google.auth.OAuth2; var plus = google.plus("v1"); var CLIENT_INFO = path.join(__dirname, "OAuth.json"); CLIENT_INFO = JSON.parse(fs.readFileSync(CLIENT_INFO)); var CLIENT_ID = CLIENT_INFO.id; var CLIENT_SECRET = CLIENT_INFO.secret; var redirect_uri = "http://localhost/googleOAuth/token"; var scope = CLIENT_INFO.scope; var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, redirect_uri); oauth2Client.setCredentials({ access_token : "ACCESS TOKEN HERE", refresh_token : "REFRESH TOKEN HERE" }); var OAuth2url = oauth2Client.generateAuthUrl({ access_type : "offline", scope : scope });
'use strict'; const google = require('googleapis'); const plus = google.plus('v1'); const OAuth2 = google.auth.OAuth2; const oauth2Client = new OAuth2(appConfig.google_oauth.client_id, appConfig.google_oauth.client_secret); var r = new APIRoute(); r.setName('goauth'); module.exports = r; r.setHandler((response, req, res) => co(function*(){ var valid_request = req.body && req.body.message && req.body.message.access_token; if(!valid_request) return response.error('error_invalid_request'); var access_token = req.body.message.access_token; oauth2Client.setCredentials({ access_token }); var user_go_info = yield new Promise(resolve => plus.people.get( { userId: 'me', auth: oauth2Client },
var express = require('express'); var router = express.Router(); router.get('/', function (req, res, next) { res.render('index', {title: 'Express'}); }); var google = require('googleapis'); var OAuth2 = google.auth.OAuth2; var CLIENT_ID = '966697304322-4pf6o516qvs4mdoug0nn263jmelj5c5u.apps.googleusercontent.com'; var CLIENT_SECRET = 'WmfqGoeL4uPd80ogRsfHNvwy'; var REDIRECT_URL = 'http://*****:*****@ds023684.mlab.com:23684/googleoauth'; var mongoDB; MongoClient.connect(url, function (err, db) { mongoDB = db; console.log('connected'); }); router.get('/auth/google', function (req, res) { var scopes = [ 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile'
var googleapis = require('googleapis'); var OAuth2Client = googleapis.auth.OAuth2; var googlePlus = googleapis.plus('v1'); var oauthModel = { oauthClient: { clientId: '408604170559-njf95oknh4u687geab8io17tnrsgofrs.apps.googleusercontent.com', clientSecret: '3AyPNrlocn_14fJ0FiA8VLnr', redirectUrl: 'http://localhost:3000/googleLogin/oauth', }, url: { scopes: [ 'https://www.googleapis.com/auth/plus.login', 'https://www.googleapis.com/auth/userinfo.email' ], accessType: 'offline', } }; this.createClient = function() { var _m = oauthModel.oauthClient; return new OAuth2Client( _m.clientId, _m.clientSecret, _m.redirectUrl ); } this.getClientUrl = function(client) { var _m = oauthModel.oauthClient; client = client || new OAuth2Client(_m.clientId, _m.clientSecret, _m.redirectUrl); var _u = oauthModel.url;