[英]How to use JWT JSON Web Tokens in C# AspNetCore Websites?
我正在尝试将使用JWT进行登录的网站整合在一起。 我的问题是我不明白网站应该如何使用JWT。
我的想法是将我的整体架构分成:
这将允许我为许多项目使用一个IdentityServer,并可能将前端开发用于第三方,并允许我专注于应用程序API详细信息。
我已经构建了IdentityServer。 它可以使用用户名/密码,验证并发出访问令牌和刷新令牌。 超。 访问令牌是短暂的且不安全的,并且旨在定期刷新。 目的是将其存储在客户端,即应用程序或网页。 刷新令牌的寿命较长,并且旨在安全存储。 在网站上,这将存储在服务器端,并存储在应用程序中,存储在“会话”持续时间的安全存储中。
我有一个前端网站shell设置了一些测试操作。 必须对用户进行身份验证才能访问它们,其中进行身份验证意味着具有有效的访问令牌。
关于如何将访问令牌返回到网页,我有点迷茫。
此外,我不明白网页如何自动附加每个请求的令牌(如果有的话),或者网页如何响应401挑战(如果没有)。
Cookie是将数据附加到HTTP对话的唯一方法,并在导航期间将其保留在客户端吗?
JWT是纯粹用于最初提供页面的SinglePageApps(SPA),然后所有后续数据都由Ajax处理(我可以设置头文件没有问题)?
或者,是否可以编写网页,以便它们始终使用访问令牌填充Authorization标头(如果存在)?
我意识到我可能已经把自己想成了一个结,任何帮助都会受到赞赏。
您应该阅读Auth0的资源所有者密码授权文档https://auth0.com/docs/api-auth/grant/password
我会在客户端上保持刷新令牌和访问令牌。
我的方法是。
客户端知道它没有访问令牌 - >显示登录按钮。 单击登录按钮 - >使用登录页面重定向到身份验证服务器。 它包括状态/代码和回调网址。 客户端从用户接收回调并将其视为登录的客户端。客户端将访问令牌和刷新令牌(如果提供)存储在localstorage中。 然后它将访问令牌传递给它想要访问的api的请求。 API检查访问令牌是否适合它并且是否有效,允许授权并完成请求。 API不具备刷新令牌的任何知识。
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.