2014-12-27 53 views

回答

6

很多网络相关的信息可以在这里找到类似的帖子:Token Authentication vs. Cookies;我想请出一些“建筑”的区别:

  1. JWTs是标准化容器格式编码以安全的方式的用户和客户端的相关信息,使用“索赔”(而cookie内容和签名/加密的不标准化)
  2. 智威汤逊不限于目前类似会话的用户本身的信息;他们也可以用来委托代表用户的客户端的访问
  3. JWT允许比Cookie更细化的访问模型,因为JWT可以在“范围”(它们允许客户端执行的操作)中进行限制随着时间的推移
+0

怎么样从新标签的GET请求?如果您在通过浏览器访问的Web应用程序上使用JWT,假设用户可能想要打开不同的选项卡(也许手动输入所需的URL)是安全的。在这种情况下,在发出请求之前(例如将其注入标头),您无法读取存储的JWT。 Cookies没有这个问题,因为它们是由浏览器本地发送的新请求,即使是在新标签页上。我对这个问题提出了一个问题: http://stackoverflow.com/questions/30061307/jwt-how-to-handle-get-requests-when-user-opens-a-new-tab – noderman

+0

这个前提是在访问URL时不显示正确的JWT,浏览器将被重定向到特定的端点(授权服务器),从而可以获取JWT –

+0

[新JWT的生成是否使原始选项卡上存在的JWT失效?如果是这样,你不能这样做,而不会中断原始选项卡的操作]因此,循环似乎是:你已经通过身份验证,新选项卡导致重定向,我想你的应用程序有一个本地JS代码只是为了得到你的$ window.localStorage.token(sessionStorage不能在标签之间工作) - 这是必须的:你想避免用户的新登录,并可能避免JWT的破坏 - 然后通过JWT注入重定向到所需的资源。 – noderman