Articles of google oauth

使用NodeJS在Heroku上validationGoogle Sheet API

我正在按照以下示例访问Google表格API: https://developers.google.com/sheets/api/quickstart/nodejs 在示例代码中,以下方法可以获取新的oauth标记。 function getNewToken(oauth2Client, callback) { var authUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: SCOPES }); console.log('Authorize this app by visiting this url: ', authUrl); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question('Enter the code from that page here: ', function(code) { rl.close(); oauth2Client.getToken(code, function(err, token) { if (err) { console.log('Error while trying […]

如何从passportjs中的刷新令牌获取新的Google oauth访问令牌

似乎有关于如何从刷新令牌获取访问令牌的一些冲突的build议: 这回答说,passportjs不涉及刷新访问令牌,它应该通过cron作业完成: 刷新Passport.js中的令牌 这回答说:“不需要任何cron作业…当用户使用已过期的访问令牌从API请求数据,这应该会导致您的框架失败,更新,然后重试。 OAuth 2.0 – 访问令牌何时应该刷新令牌? 确保我们始终向Google提供有效的访问令牌的最简单方法是什么? 现在,我们只是将刷新令牌存储在数据库中,从不使用它,每当访问令牌过期时,都会强制用户通过“允许/拒绝权限”stream。

使用passport-google-oauth2与Facebook和Google进行身份validation

我正在尝试使用passport-google-oauth2和passport-facebook分别passport-facebook和Google进行身份validation。 我的auth文件夹的项目结构如下所示: auth/facebook index.js login.js verifyCallback.js auth/google index.js login.js verifyCallback.js auth / google代码如下所示: verifyCallback.js var User = require('../../models/user'); module.exports = function(accessToken,refreshToken,profile,done){ function findOrCreateUser(){ console.log(profile); User.findOne({'google.id':profile._json.id},function(err,user){ if(err){ console.log("An error occured when logging in with google"); console.error(err); done(err); } else if(user) { console.log("User exists in google verify callback"); console.log(user); done(null,user); } else{ console.log("Creating a new user in […]

https://www.googleapis.com/oauth2/v3/certs中的v1,v2和v3之间的区别

我尝试通过Google Sign-in在Android上validation用户,获取帐户名称,通过GoogleAuthUtil.getToken(getApplicationContext(),app,scopes)获取令牌,然后将令牌发送到我的NodeJS后端服务器核实 我发现这个伟大的stackoverflow问题如何解码它,caching密钥ID(KID),所以它不是每次都做一个往返等等(还没有实现这个部分,但有点玩弄它)我唯一的问题是:以下googleapis证书有什么区别: www.googleapis.com/oauth2/v1/certs www.googleapis.com/oauth2/v2/certs www.googleapis.com/oauth2/v3/certs 每个版本的KID是相同的,但内容是明显不同的。 为什么? v2和v3似乎几乎是相同的,除了v2在属性“n”的值的末尾附加“==” 最重要的是,我使用哪个版本? 我认为这些证书被称为JSON Web密钥(JWK)。 我也读过“x5c”这个词是什么意思? PS:我从我的Android应用程序得到我的nodejs令牌是: { "iss": "accounts.google.com", "sub": "SOME_LONG_NUMBER_THAT_I_DONT_KNOW_IF_SHOULD_SHOW", "azp": "SERVER_CLIENT_ID", "email": "ANDROID_USER_EMAIL", "email_verified": "true", "aud": "ANDROID_CLIENT_ID", "iat": "SOME_NUMBER", "exp": "SOME_NUMBER", "alg": "RS256", "kid": "e53139984bd36d2c230552441608cc0b5179487a" }

如何让Google停止在PassportJS中自动logging用户?

我只允许用户使用某个域名login。 这个特定的function起作用,而不是问题的根源。 问题是当用户尝试使用不正确的电子邮件地址login时,用户会陷入一种负面的反馈循环。 参照上面的图片,用户(在没有信息的空白隐身页面中)从第一步开始。 单击login使他们到步骤二,然后到步骤3.试图login以不正确的域名结尾的电子邮件地址使他们到步骤4.这是所需的。 第四步之后,如果他们从网站注销,他们被提出第一步。 这是可取的。 注销代码如下。 app.get("/logout", function(req, res) { req.logout() req.session.destroy() res.clearCookie("connect.sid") res.redirect("/") }) 他们再次点击login后会发生什么是不可取的。 而不是把他们带回到第二步(所需的,所以他们可以用他们的正确的电子邮件地址再次login),它使他们直接到第四步。 就好像谷歌记得最后login的人一样。 这是我的passport.jsconfiguration文件的代码 。 简短的问题:我如何向Google表示不要这样做? 或者触发浏览器,让他们再次login? 我很茫然。 额外的细节:在谷歌的Oauth2.0文档 ,它提到了高清和领域,可以限制login到一个特定的领域。 但是我不知道如何在PassportJSconfiguration文件中configuration它。

谷歌oauth不返回电子邮件通行证authentication

我正在尝试使用节点js的护照模块使用Googlebutton进行login。 我想获得人员的电子邮件ID,名称,个人资料图片。 我正试图下载图片到本地服务器。 即使向作用域添加“电子邮件”,Google也不会返回电子邮件地址,也不会返回用于个人资料图片的链接。 我已经看了这个问题的各种答案,但都说包括userinfo.email。现在已被弃用。 根据谷歌文档新的范围参数是电子邮件下面是我的代码任何帮助赞赏护照 passport.use(new GoogleStrategy({ clientID : configAuth.googleAuth.clientID, clientSecret : configAuth.googleAuth.clientSecret, callbackURL : configAuth.googleAuth.callbackURL, }, function(token, refreshToken, profile, done) { // make the code asynchronous // User.findOne won't fire until we have all our data back from Google process.nextTick(function() { // try to find the user based on their google id User.findOne({ […]

Gmail API是否支持JWT?

我想使用NodeJS访问Gmail API。 我正在使用服务器到服务器的方法(请参阅此 ),但是当我执行下面的代码时,我得到一个backEndError,来自Google API的代码500。 有任何想法吗? var authClient = new google.auth.JWT( 'email', 'key.pem', // Contents of private_key.pem if you want to load the pem file yourself // (do not use the path parameter above if using this param) 'key', // Scopes can be specified either as an array or as a single, space-delimited string ['https://www.googleapis.com/auth/gmail.readonly'] […]

从passportjs中的刷新令牌获取oauth访问令牌

要确定何时使用刷新令牌来请求新的访问令牌,我知道两种方法(下面)。 无需修改passport-google-oauth库,这两种方法都可行吗? 1)“先发制人”的方法 保存授权后的访问令牌的到期时间 每当使用访问令牌访问API时,请根据当前时间检查到期时间 如果访问令牌没有过期,请使用它来访问API 如果访问令牌已过期(或接近过期),请提供刷新令牌以获取新的访问令牌 2)“处理失败”方法 始终提供访问令牌 如果访问令牌未通过身份validation,请提供刷新令牌,以获取新的访问令牌 谢谢。 也欢迎任何替代品。