首页 文章

使用令牌承载而不是cookie实现身份验证

提问于
浏览
0

如何在没有cookie的情况下实现身份验证(和授权),并且在ASP.Net MVC Core中只为所有页面实现承载令牌?

我们还可以使用ASP.Net Identity吗?

2 回答

  • 2

    不,您不能将承载令牌与MVC视图一起使用 . 只有使用WebAPI-esque调用(由JavaScript / Ajax调用调用),因为对于Bearer Token,您需要在HTTP Request中传递包含承载令牌的头 .

    ASP.NET Core MVC和ASP.NET Core Identity也都没有提供生成JWT或opaque / refresh令牌的机制 . 您需要第三方库(ASOSOpenIddictIdentityServer4 - 或编写您自己的中间件) .

    一般方法是使用Cookie进行MVC(AntiForgery令牌 - 这些对于防止跨站点伪造请求(XSRF)攻击很重要)和WebAPI承载(有安全问题使用Cookie运行Ajax / Rest调用,因为您无法轻松保护然后就像你可以用AntiForgery令牌做MVC) . 有疑问,谷歌有关条款;)

    这对你有意义吗?

  • 0

    尽管如此,这种情况仍然违背了JWT的目的 .

    拥有带有相当大的JWT令牌数据的多个链接会加起来 . 此外,如果在一系列链接中遗漏了一个,那么JWT将被“丢弃” . 可以将JWT保存在客户端sessionStore中,并让javascript在点击时动态地将JWT添加到链接 .

相关问题