搜索“ token 放 header ” 看到的大都是 2017-2018 的,以前不是认证信息都放 cookie 吗?如果因为 cookie 不安全,cookie 可以设置 same-site 防止 CSRF 攻击,可以设置 httpOnly 防止 cookie 劫持类攻击,如果说用户有可能禁止 cookie,不是有那种“本网站需要开启 cookie ”的提示吗?
1
geekcorn 2018-08-09 22:32:05 +08:00 via iPhone
三楼觉得这个如何解释比较好...
|
2
agagega 2018-08-09 22:33:10 +08:00 via iPhone
不太明白你的意思,Authorization 字段不是 HTTP 本来的一个用法么
|
3
lianyue 2018-08-09 22:38:11 +08:00
1. 支持跨域 跨域储存
2. Authorization 字段本来就是用来认证的 |
4
lvlv OP |
5
yangqi 2018-08-09 22:44:43 +08:00
为什么不呢?
|
6
lianyue 2018-08-09 22:45:08 +08:00 1
Authorization 字段一般 是 api 通讯 前后端分离 结构
请求 静态资源为什么 要带上这个 |
7
mgcnrx11 2018-08-09 22:50:24 +08:00 via iPhone 1
客户端不是浏览器就没有 cookie 了呀
|
8
shapl 2018-08-09 22:53:23 +08:00 1
举个例子,小程序。
|
9
CODEWEA 2018-08-09 22:53:44 +08:00
不仅是认证 校验 ajax 成功与否也是利用 header
|
10
moult 2018-08-09 22:54:24 +08:00
A 公司:我看 B 公司的产品是这样的,我也就这样了。
B 公司:我看 C 公司的产品是这样的,我也就这样了。 C 公司:???我觉得这样搞比较好看。!! |
13
StevenTong 2018-08-09 22:59:57 +08:00
现在手机 APP 普及了,api 放 cookie 吗?用 Authorization 做 Authenticate 很合适呀
|
14
lvlv OP @CODEWEA 这个是什么意思?没有看明白,Ajax 成功与否不是看`ajax.readyState==4 &&ajax.status==200` 吗?
|
15
Zzdex 2018-08-09 23:11:48 +08:00 via iPhone
小程序就不支持 cookie
|
17
crab 2018-08-09 23:19:09 +08:00
主要还是跨域问题吧
|
18
gamexg 2018-08-09 23:24:31 +08:00 via Android 1
>没有通过登录认证的用户不给他网站的静态资源的这种需求应该比较正常吧?
@lvlv 这种很少见 cookie 限制的,老方案是普通资源不登陆不提供地址。非法用户猜到地址就可以下载。 比较重要的资源是真实地址不可访问,直接可访问的是 php 部分,php 验证后通过 nginx 内部重定向到实际文件。这个倒是依赖 cookie。 现在很多都是使用的对象储存,静态资源在独立域名,真需要限制在 1url 追加签名的比较多。 |
19
CloudnuY 2018-08-09 23:25:32 +08:00 1
移动端 包括小程序这两年发展导致的吧
|
20
34C 2018-08-10 02:24:24 +08:00 via iPhone
楼主是多久没有接触现代化前端了… 是不是还在用 jQuery 那种…
|
21
Mutoo 2018-08-10 07:46:19 +08:00 1
cookies 这个 request-header 和 set-cookie 这个 response-header 只能由同域的服务端接收和返回,而大多数的 API 是跨域的。。
|
22
ericls 2018-08-10 08:07:01 +08:00 via iPhone
Token 放哪儿都行
问题是 cookie 跨域什么的 比较麻烦 |
23
suzic 2018-08-10 08:30:09 +08:00 via Android
这样比较方便
|
25
NullException 2018-08-10 08:47:18 +08:00 1
RESTFUL API 或者 JWT 了解下? https://www.iluwen.com/blog/43
|
26
cxh116 2018-08-10 08:56:08 +08:00 1
有些场景或语言启用 cookies 成本太高,比如 Java ,配置多服务器实例时共享成本比较高.
所以自己实现,只要根据 header 或 request params 来简单验证即可,而 request param 的方式,使用拦截器之类的方式不能很方便的设置为通用的,而 header 可以很方便的设置为通用默认带上. 个人理解 |
27
IvanLi127 2018-08-10 08:59:03 +08:00 via Android
你的搜索引擎坏了可能。。。一直都有放头部的额
|
29
whypool 2018-08-10 11:15:06 +08:00 1
1,前后端独立部署,前端的静态文件弄个 nginx 转发就行了,不涉及后端,这时候用 cookie 就不合适,没有后端服务下发 cookie,所以 token 头拿权限就很重要了
2,app 内嵌页面,有的是把静态资源一起打包到 app 里面,访问的方式是加载本地路径,协议是 file://,这样本地协议也是拿不到 cookie,所以还是得在请求头里面加权限 3,对于现在的微服务,一个请求可能需要提供给 web,微信公众号,ios,android 甚至是小程序,这时候用 token 鉴权就很省事了,统一鉴权 |