【问题标题】:Is there a way to check if a new account has just been created using the Okta Authentication API?有没有办法检查是否刚刚使用 Okta 身份验证 API 创建了新帐户?
【发布时间】:2019-01-06 08:21:34
【问题描述】:

我想使用 Okta 安全地存储我的用户名和密码;但是,它们也有(一般而言)年龄、生日、毕业日期、兴趣等信息要存储。

Okta API 不存储此信息,因此在激活帐户后,我需要立即在我的 MongoDB 数据库中为此用户创建一个条目。

有没有办法检测到这个事件?谢谢!

如果这是非常迂回的,我也完全可以采用新方法;但是,如果实际上可行的话,我认为我目前的方法并没有太大的问题。

我正在使用 Node 和 ExpressJS 通过 express-session 和 oidc 中间件与 Okta 进行通信。

【问题讨论】:

    标签: node.js express express-session openid-connect okta-api


    【解决方案1】:

    一种常见的解决方案是将用户个人资料数据与其凭据分开。因此,首先,您有一个用户创建一个帐户或使用 Okta 登录。在他们登录后,您可以检索他们的个人资料数据。如果用户在您的 web 应用中没有个人资料数据,您会强制用户填写我们的个人资料,然后才能使用该 web 应用。

    新用户流程如下所示:

    1. 用户点击“创建帐户”
    2. 用户在 Okta 中输入电子邮件/密码
    3. 您的后端存储用户会话
    4. 您的后端尝试查找用户的用户配置文件。未找到(第一次用户),因此它限制了用户可以访问的路线。
    5. 您的前端强制用户在访问任何其他屏幕之前填写个人资料
    6. 用户填写个人资料并提交
    7. 前端 POST 配置文件到后端,后端保存它
    8. 前端和后端解除所有限制,应用正常运行

    【讨论】:

    • 谢谢,我原本打算这样做,但我认为一旦有很多用户,解析整个数据库来检查用户名将是低效的。
    • 您可以将用户名存储为ID或索引,以便db快速找到它。想想哈希图!
    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 2011-07-18
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多