在定义http Auth的过程中,可以经常看到Basic / Bearer等命名开头的Token。
两者在使用场景上是有明显的差异的,basic用在存取一个网站的时候,bearer则用于存取资源的时候
看看实际例子:
一般,我们会在使用token的时候,会在header定义Authorization,并传入带有指定类型的token,就比如上面说到的Basic / Bearer
Basic Token
作为HTTP最基础的认证方式,Basic使用明码的方式传输password 、 userid,一般来说,在访问服务器的时候,需要预先传入Token,如果未能成功验证通过,Response则需返回对应的信息,WWW-Authenticate 的header以及Realm信息
【Realm(Protection Space):token的有效作用域】
【charset:用于设定schema的编码,只能允许utf-8】
Bearer Token
在http1.1 TLS下定义的token,所以定义bearer之前,必须具备TLS的环境,依旧会跟Basic Token使用一样的header,包括:WWW-Authenticate、Authorization
// 使用Authorization HEADER:``Authorization:Bearer QWxhZGRpbjpvcGVuIHNlc2FtZQ== // 使用Form Body:``不建议将token加入body,以及GET之外的HTTP verbs |
|---|
Bearer Token相对于Basic Token更常用,它适用于无状态的身份验证场景,避免了服务器存储和验证用户的用户名和密码
Bearer Token通常用于API身份验证,可以用于授权访问受保护的资源,例如OAuth 2.0的认证服务器会颁发Bearer Token给客户端,然后客户端在每次请求中使用该令牌进行身份验证