首页 文章

如何处理身份服务器(.net身份)和js客户端之间的用户注册和数据流

提问于
浏览
0

我有三个项目和两个EF上下文

具有.Net标识的

  • IdentityServer4(身份上下文)

  • .Net API(业务背景)

  • Js客户端(Angular)

我对实现注册有一些想法;

  • 当用户在Js Client中单击注册按钮时,重定向到IdentityServers / Account / Register url . 用户成功注册后,将必要的数据发送到API并生成相关的行 . 然后我需要为Js客户端获取一个新令牌,我不知道如何在注册后执行此操作 .

  • 当用户在Js Client中单击Register Button时,用户转到Js Client中的Register页面,向API发送凭据,API将凭据发送到IdentityServer . API从IdentityServer获取Jwt令牌,如果用户成功创建,则在数据库中生成必要的行,然后将jwt返回给Js Client .

主要问题是如何在用户注册到IdentityServer后获取Jwt令牌,以及如何在Js Client中安全地将令牌设置为localStorage或cookie . 我听到一些像发送jwt作为url参数的黑客但是出于安全原因这听起来不太好 . 你是如何实现注册的?

1 回答

  • 2

    选项#1看起来比另一个好 . 所有登录/注册逻辑都应在Auth服务器上处理 . 当用户点击保存时,它将在您的数据库中创建一行 . 无法理解你的意思

    将必要的数据发送到API并生成相关的行

    您的auth服务器应与您的数据库通信,并应负责保存新注册的用户或登录 .

    • 当用户成功注册时,您可以为他们提供登录屏幕 .

    • 当他们成功登录时 - 他们将被重定向到您的客户端应用程序

    • 在客户端应用程序(自其js客户端)上,您可以使用oidc-client库来管理用户状态(登录/未登录)和JWT令牌 . 看看here

    简而言之,用户需要成功登录才能获得有效令牌 - 单独注册无济于事!

相关问题