将JWT令牌存储在cookie中

Kai*_*zer 11 asp.net-mvc access-token

这是我的设置:

  • 1个认证服务器,在成功认证时发出JWT令牌.
  • 多个API资源服务器,提供信息(当用户通过身份验证时).

现在我想构建我的ASP.NET MVC前端.是否可以获取我在认证后收到的令牌,并将其放入cookie中,以便我可以使用我需要进行的每个安全呼叫来访问它?我使用RestSharp DLL进行我的http调用.如果它有安全漏洞,那么我应该在哪里存储我的令牌?

我会将此代码用于cookie:

            System.Web.HttpContext.Current.Response.Cookies.Add(new System.Web.HttpCookie("Token")
        {
            Value = token.access_token,
            HttpOnly = true
        });
Run Code Online (Sandbox Code Playgroud)

rob*_*tjd 14

你走在正确的道路上!cookie应始终具有HttpOnly标志,设置此标志将阻止JavaScript环境(在Web浏览器中)访问cookie.这是防止浏览器中XSS攻击的最佳方法.

您还应该Secure在生产中使用该标志,以确保仅通过HTTPS发送cookie.

您还需要防止CSRF攻击.这通常通过在另一个cookie中设置一个值来完成,该值必须在每个请求中提供.

我在Stormpath工作,我们写了很多关于前端安全的信息.这两篇文章可能有助于理解所有方面:

基于令牌的单页应用认证(SPA)

https://stormpath.com/blog/build-secure-user-interfaces-using-jwts/

  • 谢谢你的信息.有没有计划写一些关于.NET Identity 2.0 Integration的东西? (2认同)