如何在IdentityServer中存储用户首选项

时间:2019-05-02 16:36:59

标签: .net-core angular7 identityserver4

我需要了解如何解决问题,并且在阅读了大量文档后我仍然没有弄清楚。

所以我有以下内容:

  • 一个有角度的应用程序。
  • 身份服务器4
  • .NET核心API

用户通过重定向到身份服务器登录api,该身份服务器返回将由Angular Application使用的访问令牌。

角度应用程序将带有每个请求的令牌发送到api,然后api会针对Identity Server验证令牌。

现在的问题是:

用户需要存储将在整个应用程序中使用的某些属性的ID。但是现在,当用户选择该ID(或更改为另一个ID)时,我需要能够将该信息存储在身份服务器中(我想它应该是自定义声明)。这个想法是,无论通过身份服务器进行身份验证的任何客户端都应有权访问此ID。

我在这里迷路了,因为我不确定我是否以正确的方式解决问题。

我知道我可以在用户登录时使用IProfileService并设置自定义声明,但我在这里迷路的原因是因为我真正想做的是存储用户首选项,并且不确定是否应该有一个端点,在哪个端点(API或Identity Server)。

有人能指出我正确的方向吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果id首选项处于用户级别,则应进入用户数据库,在其中存储用户的详细信息(例如用户名和密码)。

如果您的身份服务器与另一个服务(例如UserAPI)进行对话以获取此用户详细信息。

  1. 从有角度的应用程序中更新UserAPI中的偏好设置(使用相同的令牌但权利要求正确)或
  2. 让有角度的应用程序与您的API对话,并使用客户端凭据流使该API与UserAPI对话以更新首选项。