Okta 与 Passport.js 或不?

Okta with Passport.js or not?

我正在考虑改进我的注册和登录工作流程,并且我调查了 Okta

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

任何人都有使用 Okta 的经验以及对为什么要将其与 passport 一起使用有任何意见吗?

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

这是 "simple" 使用 okta 的方法: https://developer.okta.com/quickstart/#/okta-sign-in-page/nodejs/express

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

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

Okta 即将发布自助服务注册,在电子邮件确认或注册后将创建一个用户会话。

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

不知道有没有帮助。

您分享的两个 link 做同样的事情。主要是获取 id 或 access token。

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

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

您共享的另一个 link 通过此配置获得相同的令牌:

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"
  }

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