如何在没有cookie的情况下实现身份验证(和授权),并且在ASP.Net MVC Core中只为所有页面实现承载令牌?
我们还可以使用ASP.Net Identity吗?
答案 0 :(得分:2)
不,您不能将承载令牌与MVC视图一起使用。只有使用WebAPI-esque调用(由JavaScript / Ajax调用调用),因为对于Bearer Token,您需要在HTTP请求中传递包含承载令牌的标头。
ASP.NET Core MVC和ASP.NET Core Identity也都没有提供生成JWT或opaque / refresh令牌的机制。您需要第三方库(ASOS,OpenIddict或IdentityServer4 - 或者编写您自己的中间件。
通常的方法是使用cookie的MVC(+防伪令牌 - 这些都是重要的,以防止跨站点伪造请求(XSRF)攻击)和承载上的WebAPI(有运行Ajax /休息与饼干电话,你可以安全的担忧然后就像你可以使用AntiForgery令牌做MVC一样轻松保护。有疑问,谷歌关于条款;)
对你有意义吗?
答案 1 :(得分:0)
尽管如此,但打败了拥有JWT的目的。
具有多个带有大量JWT令牌数据的链接的总和。同样,如果在链接链中错过了一个,则JWT将被“丢弃”。可以将JWT保存在客户端sessionStore中,并让javascript在单击链接时将JWT动态添加到链接中。