我试图了解 OAuth2.0 Implicit Flow (with OIDC) 如何与一个非常简单的 SPA/Mobile 客户端 (aka Client) 和我的 REST Api (aka Resource Server) 一起使用并创建新帐户。
我或多或少了解客户端如何从身份验证服务(Auth0/Stormpath/IdentityServer/etc)请求令牌。然后它使用这个令牌来访问受限的 API 端点。
但是我一直在阅读的所有示例都是在这些身份验证服务上创建了“帐户”(这是必需的,我理解),但在我的服务(我的资源服务器)上没有创建任何内容。
我需要在我的数据库中创建一个帐户,因为我有想要存储的用户数据/设置(例如,他们下的订单等)。当然,我不想存储任何安全信息……因为这就是我使用外部身份验证服务的原因。
那么,任何人都可以解释他们如何使用隐式流和..当返回令牌(或更具体地说,当使用 OpenID Connect 获取用户信息时)时,您会确定用户是否存在,如果是新用户则创建一个.
我还认为,从身份验证服务的角度issuer_id + sub
确定用户都需要令牌。unique
最后,您如何防止“新帐户垃圾邮件/滥用”?我假设在您的客户端中的某个时刻(在每个 Rest API 请求之前检查本地存储令牌,因为我们需要在bearer
标头中粘贴一些令牌)......当您决定创建一个新用户时...... .我的REST Api(又名资源服务器)将有一个端点来创建新用户..就像POST /account/
..那么如何保护您的服务器免受垃圾邮件的新随机POST创建新帐户?IP+时延限制?