gpt4 book ai didi

mongodb - 自定义身份验证如何在 MongoDB Stitch 中工作

转载 作者:可可西里 更新时间:2023-11-01 09:12:43 24 4
gpt4 key购买 nike

正在关注 MongoDB Custom Authentication , 给出任何 JWT Token使用以下最少的字段可与 MongoDB Stitch 身份验证一起使用。此外, token 需要由 External Authentication System 发行

{
"aud": "<stitch app id>"
"sub": "<unique user id>",
"exp": <NumericDate>,
}

我已经测试过了,它也能正常工作

  1. 创建了 Stitch 应用程序并为用户提供了 Custom Authentication Provider
  2. 通过 Jwt.io 生成样本 token 使用以下输入。 (在启用自定义身份验证提供程序时使用与配置相同的算法和 key ,这是 HS256 和 )

enter image description here

它的工作方式,

  • 它正在使用唯一的 value 验证 MongoDB Stich 用户集合中的用户在 sub 中提供: "sub": "<unique user id>"如果用户存在,则返回该用户的对象 ID。
  • 如果用户不存在,则它会根据输入创建一个并返回对象 ID。

查询是,

  1. 为什么它要创建一个新用户而不是返回登录失败,而这反过来就像任何用户都可以按需使用任何凭据登录一样?
  2. 如果MongoDB Stitch Custom Authentication涉及External Authentication System发行JWT ,用户注册时用户数据实际存储在哪里? - MongoDB Stitch App CollectionExternal Authentication API System

最佳答案

这是来自 MongoDB Support 的回复

为什么 Stitch 创建一个新的“用户”

Stitch 在这种情况下创建的“用户”是内部用户。此“用户”还包含 JWT 提供的用户数据和元数据,并且不会与您的应用程序链接到的 Atlas 集群中的其他集合一起存储。请注意,如果不使用触发器或其他函数将其加载到数据库中,则 MongoDB 无法访问此“用户”。

为什么不返回登录失败

未返回登录失败,因为自定义身份验证提供程序仅根据其自己的签名 key 副本检查来自外部系统的已签名 JWT。如果签名匹配,则认为登录成功。

登录失败由外部认证提供商负责;不是 Stitch。

用户数据实际存储在哪里

用户数据应在您的数据库中进行管理。将其与自定义身份验证提供程序集成的最有效方法是使用 Authentication Trigger关于创建和/或登录操作类型。这将允许您运行 Stitch Function任何时候触发身份验证事件。

有一个在 MongoDB blog 上使用身份验证触发器的示例这可能有助于进一步解释该过程。

关于mongodb - 自定义身份验证如何在 MongoDB Stitch 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53538856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com