Okta 是不是使用 Passport.js?

Posted

技术标签:

【中文标题】Okta 是不是使用 Passport.js?【英文标题】:Okta with Passport.js or not?Okta 是否使用 Passport.js? 【发布时间】:2018-07-08 07:00:47 【问题描述】:

我正在考虑改进我的点歌和登录工作流程,并查看了Okta

目前,我们正在将护照与我们的自定义数据库和海关策略以及会话远程存储一起使用。似乎Okta 可以单独使用。我确实在网上找到了一些自定义库以将其与Passport.js 一起使用。我不明白你为什么要强硬。

任何人都对Okta 有任何经验,并且对您为什么将它与passport 一起使用有任何意见?

这是一个与 okta 一起使用的 passport 库:https://github.com/techstars/passport-okta-oauth-example/blob/master/config/passport.js

这是使用 okta 的“简单”方式: https://developer.okta.com/quickstart/#/okta-sign-in-page/nodejs/express

【问题讨论】:

【参考方案1】:

我不熟悉passport.js,但我倾向于同意你的观点,使用Okta 你可能不需要它。 Okta 可以处理大部分身份验证,具体取决于您的应用程序是如何开发的,您可能需要护照。

例如,如果您正在开发 SPA 应用程序或在无服务器环境中运行的东西,您可以使用来自 Oauth 的 Bearer 令牌。如果您的应用程序较旧,您可能需要一些东西来保持会话。所以,也许这就是护照对你的作用。

Okta 即将推出自助注册,在邮件确认或注册后会创建一个用户会话。

https://support.okta.com/help/Documentation/Knowledge_Article/Okta-Self-Service-Registration-685599529

不知道有没有帮助。

【讨论】:

【参考方案2】:

您共享的两个链接做同样的事情。主要是获取id或者access token。

Signin 小部件可以通过此配置建立会话并获取令牌:

Application Name    My Web App
Base URIs   http://localhost:port
Login redirect URIs http://localhost:port/authorization-code/callback
Grant Types Allowed Authorization Code

您共享的其他链接通过此配置获得相同的令牌:

passport.use(new OktaStrategy(
    audience:     nconf.get("OKTA_AUDIENCE"),
    clientID:     nconf.get("OKTA_CLIENTID"),
    clientSecret: nconf.get("OKTA_CLIENTSECRET"),
    idp:          nconf.get("OKTA_IDP"),
    scope: ['openid', 'email', 'profile'],
    response_type: 'code',
    callbackURL: "http://localhost:3000/auth/okta/callback"
  

所以你不需要同时使用它们。

【讨论】:

以上是关于Okta 是不是使用 Passport.js?的主要内容,如果未能解决你的问题,请参考以下文章

passport.js 是不是支持 ajax?

格兰特 vs Passport.js? [关闭]

如何同时使用 Bearer 和 oauth2 passport.js 策略?

Passport.js 策略在不使用会话时失败

需要了解passport.js本地策略

Passport.js本地策略如何保护路线