为啥认证 token 信息要放 HTTP header 里面呢?啥时候开始流行这种认证方式的

2018-08-09 22:30:09 +08:00
 lvlv

搜索“ token 放 header ” 看到的大都是 2017-2018 的,以前不是认证信息都放 cookie 吗?如果因为 cookie 不安全,cookie 可以设置 same-site 防止 CSRF 攻击,可以设置 httpOnly 防止 cookie 劫持类攻击,如果说用户有可能禁止 cookie,不是有那种“本网站需要开启 cookie ”的提示吗?

12848 次点击
所在节点    问与答
31 条回复
Mutoo
2018-08-10 07:46:19 +08:00
cookies 这个 request-header 和 set-cookie 这个 response-header 只能由同域的服务端接收和返回,而大多数的 API 是跨域的。。
ericls
2018-08-10 08:07:01 +08:00
Token 放哪儿都行
问题是 cookie 跨域什么的 比较麻烦
suzic
2018-08-10 08:30:09 +08:00
这样比较方便
mmdsun
2018-08-10 08:33:39 +08:00
@lianyue header 里面跨域也要配置吧。
NullException
2018-08-10 08:47:18 +08:00
RESTFUL API 或者 JWT 了解下? https://www.iluwen.com/blog/43
cxh116
2018-08-10 08:56:08 +08:00
有些场景或语言启用 cookies 成本太高,比如 Java ,配置多服务器实例时共享成本比较高.

所以自己实现,只要根据 header 或 request params 来简单验证即可,而 request param 的方式,使用拦截器之类的方式不能很方便的设置为通用的,而 header 可以很方便的设置为通用默认带上.

个人理解
IvanLi127
2018-08-10 08:59:03 +08:00
你的搜索引擎坏了可能。。。一直都有放头部的额
cjw1115
2018-08-10 11:05:16 +08:00
@mgcnrx11 有还是有的吧,至少.net 和 java 的 httpClient 还是会保存 cookie 吧,
whypool
2018-08-10 11:15:06 +08:00
1,前后端独立部署,前端的静态文件弄个 nginx 转发就行了,不涉及后端,这时候用 cookie 就不合适,没有后端服务下发 cookie,所以 token 头拿权限就很重要了

2,app 内嵌页面,有的是把静态资源一起打包到 app 里面,访问的方式是加载本地路径,协议是 file://,这样本地协议也是拿不到 cookie,所以还是得在请求头里面加权限

3,对于现在的微服务,一个请求可能需要提供给 web,微信公众号,ios,android 甚至是小程序,这时候用 token 鉴权就很省事了,统一鉴权
lvlv
2018-08-10 11:45:18 +08:00
@34C 一年多没接触了,感觉一出来什么都变了😢
lvlv
2018-08-10 11:47:53 +08:00
@cxh116
@NullException
@Mutoo
@gamexg
@whypool
谢谢,牵涉到后端部署的看不太懂,但是明白了这个做法的必要性,阿里嘎多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/478430

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX