【发布时间】:2018-06-08 21:06:03
【问题描述】:
我将 IdentityServer4 与自定义用户存储(基于 SQL Server DB)一起使用。 我想知道如何存储访问令牌以检查每个请求是否具有正确的访问令牌。
我尝试使用默认操作存储,但它只是保存了刷新令牌和授权代码。
提前致谢。
【问题讨论】:
标签: security identityserver4 asp.net-core-2.0
我将 IdentityServer4 与自定义用户存储(基于 SQL Server DB)一起使用。 我想知道如何存储访问令牌以检查每个请求是否具有正确的访问令牌。
我尝试使用默认操作存储,但它只是保存了刷新令牌和授权代码。
提前致谢。
【问题讨论】:
标签: security identityserver4 asp.net-core-2.0
如果我理解正确,您希望将访问令牌保存在服务器端,以便您可以验证用户请求。您确实不需要将访问令牌存储在服务器端,因为 IdentityServer 已经为您完成了这项工作。如果您使用身份服务器正确设置了您的 api(资源服务器),您只需在您的 api 控制器上添加 [Authorize](好像您正在使用 .net core web api)。您可以在 Github 上的 IdentityServer 文档和示例项目中找到许多示例。
与此同时,您可能需要将访问令牌存储在客户端,因为在令牌过期之前,无需再次验证用户身份;这取决于您使用的授权类型。当您使用ResourceOwnerPasswordgrant 时尤其如此;如果您的客户端是 SPA(例如 Angular),则通常访问令牌存储在浏览器的本地存储中;对于每个客户端请求,您检查是否已经有一个令牌,如果有,还要检查它没有过期。
并且可以为不同的授权支持刷新令牌,以便在其访问令牌过期时自动重新验证用户。
【讨论】: