Tag: oauth2

Google OAuth2 API刷新令牌

我正在使用google-auth-library-nodejs库集成到一些GMail帐户中,以获取电子邮件列表。 我的stream程很简单: 1)尝试使用此function授权客户端: function _authorise(mailBox, callback) { let auth = new googleAuth(); let clientId = eval(`process.env.GMAIL_API_CLIENT_ID_${mailBox.toUpperCase()}`); let clientSecret = eval(`process.env.GMAIL_API_CLIENT_SECRET_${mailBox.toUpperCase()}`); let redirectUri = eval(`process.env.GMAIL_API_REDIRECT_URI_${mailBox.toUpperCase()}`); let tokenFile = process.env.GMAIL_API_TOKEN_PATH + mailBox.toLowerCase()+ process.env.GMAIL_API_TOKEN_BASE_FILE_NAME; let oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUri); fs.readFile(tokenFile, ((err, token) => { if (err) { _getNewToken(mailBox,oauth2Client,callback); } else { oauth2Client.credentials = JSON.parse(token); callback(oauth2Client); } […]

TokenError:代码已被兑换,TokenError:Bad Request – 护照Google OAuth 2

我有一个非常基本的护照设置,你可以看到下面。 每隔一段时间我会得到两个不同的错误。 TokenError: Code was already redeemed , TokenError: Bad Request原因我似乎无法find。 我已经看了很多(1周)的可能的解决scheme,但还没有find一个工作。 你看到当前代码有什么问题吗? app.get('/auth/google', redirect, passport.authenticate('google', { scope: ['profile', 'email'] })); app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/' }), function(req, res) { res.redirect('/'); } ); 这是两个错误: TokenError: Bad Request at Strategy.OAuth2Strategy.parseErrorResponse (/app/node_modules/passport-oauth2/lib/strategy.js:320:12) at Strategy.OAuth2Strategy._createOAuthError (/app/node_modules/passport-oauth2/lib/strategy.js:367:16) at /app/node_modules/passport-oauth2/lib/strategy.js:166:45 at /app/node_modules/oauth/lib/oauth2.js:177:18 at passBackControl (/app/node_modules/oauth/lib/oauth2.js:123:9) at IncomingMessage.<anonymous> (/app/node_modules/oauth/lib/oauth2.js:143:7) at emitNone […]

用loopback设置oauth2

所以我愿意为我的基于回环的api设置oauth2。 我已经阅读了很多关于如何工作的文档。 现在,当我尝试将其应用于我的api时,我发现的唯一真实的文档是这样的 。 我会清楚的,我不明白。 我明白,我必须调用oauth2.oAuth2Provider()与指定的参数,可能在启动我的服务器之前,但这一切。 我如何提供将用于实际获得授权令牌的URL(好像是在选项中,我曾尝试过,但仍然有一个很好的“未经授权” – 401作为回应)? 什么时候应该调用oauth2.authenticate() ? 令牌如何形成? 我是否可以决定其到期时间? 为什么我要提供一个login页面,如果我可以要求一个带有“密码”授权的令牌? 此外,我试图设置和运行这个,但不幸的是,它告诉我,我没有一个有效的Strongloop API网关lincense。

Google OAuth2:redirect已被CORS策略阻止:请求需要预检,不允许跟踪跨源redirect

尝试实施Google OAuth2并使用https://github.com/google/google-api-nodejs-client#authorizing-and-authenticating作为参考。 将用户redirect到这样的同意页面时 var url = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: some_scope }); res.redirect(url); 我在浏览器控制台中看到这个错误(编辑链接): XMLHttpRequest无法加载localhost:8080 / myPageName。 从localhost:8080 / myPageNameredirect到accounts.google.com/o/oauth2/auth?access_type = …已被CORS策略阻止:请求需要预检,不允许跟踪跨源redirect。 奇怪的是我得到这个错误只有当执行从GUI(用户按下button; angular2前端)的stream程。 当我把localhost:8080 / myPageName直接放到浏览器的地址栏中时,一切正常(取得同意书表格,然后是令牌)。 任何帮助表示赞赏。 谢谢。

OAuth2授予​​节点js的密码

我正在devise一个Web应用程序,主要分为以下两部分 网站(UI):Node JS Express应用程序将作为www.mysite.com托pipe Rest API:业务逻辑(Atuhentiation,授权,业务逻辑),将作为一些不同的域名托pipe,例如api.mysite.com 我想要为这个应用程序实现OAuth2 。 我通过OAuth2阅读,了解它的各种stream程,基于我的理解,我得出结论:“ 资源所有者密码凭证 ”stream是一种方式,因为客户端和服务都属于我,用户也将直接注册我的应用程序,因此他们将提供用户名和密码。 我围绕“资源所有者密码凭据”stream程进行了大量研究,但是这个stream程很less被讨论和logging。 我几乎不知道如何在应用程序中实现这个stream程。 我正在开发节点JS中的网站和Rest API。 请指导我如何实施这个? 任何演示,文件将是有益的。 提前致谢 !

什么authentication策略使用?

最近,我一直在阅读OAuth2,OpenID Connect等,但仍然很遗憾什么时候以及如何实现它。 我现在想使用NodeJS。 可以说我想创build一个博客服务。 该服务将公开API供客户使用。 “客户”包括pipe理员CMS。 我想这将是很好的解耦我的服务器和客户端(UI)。 我可以在不触摸服务器的情况下更改UI。 这些客户端可能会成为单页的Web应用程序。 好的第一个问题:在这个例子中,我应该使用OAuth2吗? 为什么? 仅仅因为我正在授权pipe理员应用程序访问博客? 自从SPA以来,我认为正确的策略是OAuth2 Implicit Flow? 对于每个应用程序,例如。 admin cms,我将不得不生成传递给auth服务器的AppID。 没有应用程序的秘密是正确的? 在这种情况下是否可以使用谷歌login(而不是用户名/密码)? 是否OpenID连接做到这一点? 我如何在NodeJS中实现所有这些? 我看到https://github.com/jaredhanson/oauth2orize ,但我不明白如何实现隐式stream。 我看到一个非官方的例子https://github.com/reneweb/oauth2orize_implicit_example/blob/master/app.js ,但我在想的是为什么会话需要? 我认为令牌的目标之一是服务器可以是无状态的? 我也想知道,我应该什么时候使用API​​密钥/秘密身份validation?