Tag: oauth2orize

如何在我的SPA加载过程中validation和更新JWT id_token?

我对OAuth 2.0和OpenID Connect相当OAuth 2.0 ,而且我无法理解stream程的某些部分(或者我应该使用哪些最佳实践)… 对不起,冗长的职位:) 我的设置: OP (OpenID提供者),基本上是使用oauth2orize-openid和passport来authentication和授权用户的express服务器。 我们称之为http://authserver.com Single page application (react + webpack)需要根据我的OP对用户进行身份validation,我们称之为http://my-spa.com 由于它是一个SPA(静态的webpack服务),我不得不使用Implicit Flow 。 我的问题 一旦用户导航到http://my-spa.com ,应用程序被加载,然后检查localStorage是否存在id_token 。 id_token在localStorage没有id_token : 由于没有令牌,我redirect到http://authserver.com/dialog/authorize response_type=id_token scope=openid profile 一旦用户成功通过身份validation和授权, authserver使用URI片段中的id_tokenredirect到my-spa 我将id_token存储在localStorage ,用户可以开始使用该应用程序。 加载时在localStorage有一个id_token 用户closures浏览器并再次打开。 这是我不知所措的地方。 由于已经有一个令牌(来自以前的login),我需要检查它是否有效。 有什么最好的做法呢? 以下是我认为是正确的: redirect到http://authserver.com/dialog/authorize使用: prompt=none id_token_hint=CURRENT_TOKEN 一旦OP收到这个请求,它应该validationJWT签名,尝试自动批准用户,并重新引导一个新的JWT。 令牌get在一段时间后过期 假设一个login用户的JWT过期了,应该什么时候请求一个新的? 什么应该引发更新? 什么是/tokeninfo或/userinfo ? 据我了解,JWT存储了识别用户所需的全部数据。 不过,我见过的例子调用/tokeninfo或/userinfo 。 如果我已经有sub标识,这些端点只是为了validation标记(假设我只需要标识的标识)。 智威汤逊签名validation 除OP , […]

OAuth2orizeloginstream程无限循环

希望获得为我的网站设置的OAuth2端点。 我在OAuth服务器上使用OAuth2orize,在客户端服务器上使用passport-oauth。 我几乎逐字地使用oauth2orize的例子来使它工作。 当我开始loginstream程时,它会将我发送到login页面(到目前为止),我login并将其发送给对话框(也是好的),然后当我单击允许时,它只是使我回到相同的一遍又一遍的页面(允许/拒绝对话框)。 任何人有什么想法我做错了? 我知道这实际上是把我送回到我的应用程序(用代码,我的应用程序应该交换一个标记),但是它似乎只是让我回到对话框:

使用范围保护API(oauth2orize,passport,express,Nodejs)

我正在尝试使用node / express创build一个API,并使用Passport和oauth2orize来保护它。 我有API的工作,我有oauth2的东西工作,但我似乎无法弄清楚如何实现与范围保护API方法。 oauth2orize标记hander-outer: server.exchange(oauth2orize.exchange.password(function (client, username, password, scope, done) { scope = scope || ['unauthorized']; db.collection('oauth_users').findOne({username: username}, function (err, user) { if (err) return done(err); if (!user) return done(null, false); for (i in scope) if(user.scope.indexOf(scope[i]) < 0) return done(null, false); bcrypt.compare(password, user.password, function (err, res) { if (!res) return done(null, false); var token […]

实现自己的oauth2服务器和api服务器

我们试图实现oauth 2服务器和api服务器(都是不同的服务器)。 (全部使用nodejs) 我们正在使用https://github.com/FrankHassanabad/Oauth2orizeRecipes授权码stream程 我们是否需要在oauth服务器中编写新的validateToken函数,只需从api端点击它来validation该用户。 我们正在考虑在oauth方面保留用户和angular色,但是我们需要在给api调用响应之前在api方面检查它们。 我们正在尝试将它用于cms和移动应用程序的身份validation。 我们是正确的还是错过了任何东西。

使用OAuth2保护nodejs / sailsjs API

我用sailsjs开发了一个REST API,我想添加OAuth2授权来保护这个API。 我对OAuth很陌生,我不知道从哪里开始。 我发现可以用于这个目的的几个模块,例如oauth2orize和它的用法的一个例子https://github.com/aaron524/sails-oauth2-provider-example但我不完全理解这是如何工作的内部。 基本上,我将有几个客户端使用我正在开发的API: – 我信任的客户端,我希望与“资源所有者凭据授权”一起使用 – 我不信任的客户端,并使用授权码stream程 我正在考虑在sails应用程序中的Client模型中添加一个受信任的属性,然后当用户login到应用程序时: – 他将直接访问其资源(受信任应用程序的情况) – 他将被要求批准或拒绝应用程序访问其资源(不可信应用程序的情况) 这是一个好方法吗? 任何关于如何根据客户端可信级别select相应策略的指针? UPDATE 我已经在GitHub上安装了下面的项目,使用了我发现的几个教程和项目。 https://github.com/lucj/sails-oauth2-api 这个项目还没有function。 当用户通过应用程序使用API​​时,我仍然不清楚如何select正确的授权types(授权码与资源所有者的密码)。 如何将此检查整合到政策中? 我无法创buildOAuth endPoint(/ oauth / authorize,/ oauth / token)和对oauth2orize的调用之间的链接。 任何想法 ?

护照和oauth有什么区别?

我正在尝试使用express.js构build一个身份validation服务,但是我还没有注意到身份validation模块的想法。 护照和oauth中间件有什么区别? 他们是相互依赖的吗? 没有oauth服务器生成令牌到BearerStrategyvalidation是没有用的BearerStrategy? 我是否正确? 我已经阅读了oAuth2及其身份validationstream程,但是我仍然失去了这个非耦合的代码。 我试图build立资源所有者密码authentication与刷新令牌我的AngularJS前端与后端API通信,我面临的密码.js策略(基本,承载,ClientPassword)与oauth2orize在另一端的许多组合。 所以,我想知道如何authentication在NodeJS上工作的一个非常简单的解释。 实际上,我知道Express并不是在发明一种authentication如何工作的新方法,但是这些模块太不显眼了,所以我需要了解它如何实现它们的协同工作的基础。