sky*_*ork 17 authentication cookies session ios jwt
我一直在我的网络应用程序中使用Cookie进行身份验证和会话控制,并且满足于其功能.
我是由iOS应用程序开发人员介绍的,新的热门东西是JWT(JSON Web Token).他告诉我,JWT是为本机移动应用程序进行身份验证和会话的方式,并且没有提供具体示例,他建议iOS和Android应用程序都有各种Cookie问题.
所以我查阅了JWT,例如http://angular-tips.com/blog/2014/05/json-web-tokens-introduction/和https://auth0.com/blog/2014/01/07/angularjs- authentication-with-cookies-vs-token /,我没有看到为什么它比Cookies更好(甚至不同),更具体地说,为什么它在原生移动应用程序中做得更好.看来,至少iOS,处理Cookies就好了(在iOS应用程序中坚持使用Cookie?).
所以我的问题是,对于与服务器端API交互的本机移动应用程序,使用JWT而不是Cookie进行身份验证和会话的具体优势和相关用例是什么?请突出显示Cookies根本无法做到的事情或更糟糕的事情.
Joã*_*elo 16
我们软件开发人员(有时)倾向于在我们看到的任何地方应用新的热门东西; 如果我们所拥有的只是一把锤子,那么这可能是一种变化,一切看起来像钉子,在这种情况下,我们只是感到绝望的冲动,使用我们学到的这个新东西.
关于这种比较的一个有趣的观点是,JWT或Cookies本身都不是自己的认证机制; 第一个只定义一个令牌格式,第二个是HTTP状态管理机制.只有这一点足以让我们表明提倡一个比另一个更好是错误的.
然而,两者都在认证系统中广泛使用.
传统的服务器端Web应用程序使用cookie来跟踪经过身份验证的用户,以便在每次请求时都不会强制他们提供凭据.通常,cookie的内容将是(希望)随机生成的唯一标识符,服务器将使用该标识符来查找存储在服务器上的会话数据.
但是,对于新类型的Web应用程序(API),接受令牌(大多数时候采用JWT格式)更为常见,因为服务器可以决定是否应该授予访问谁发出请求的权限.造成这种情况的原因可能是因为传统的Web应用程序有一种主要类型的客户端,即完全支持cookie的Web浏览器,API通常由更简单的HTTP客户端使用,这些客户端本身不支持cookie.
我认为这也是我们可能认为基于令牌的身份验证对本机移动应用程序更有意义的原因.这些应用程序通常依赖于服务器端Web API,我们已经看到,如果API支持令牌,它将增加可以使用它的客户端的范围,因此这是最实际的事情.
总而言之,为了回答你的具体问题,我想说JWT确实比原生移动应用程序上的cookie有优势,因为它们目前非常普遍使用,这意味着更多的学习资源,SDK,已知的陷阱(主要是因为其他人已经做过而且失败了)等等
尽管如此,只有在他们为您提供所需的安全保证并最终简化您的方案时才使用它们.如果你还没有完成它,我想你也会感谢Cookies vs Tokens:The Definitive Guide.
| 归档时间: |
|
| 查看次数: |
4481 次 |
| 最近记录: |