- HTTP Basic Authentication
基础认证简单的使用base64对密码、用户名进行加密,并将加密后的信息放在Header中,本质上还是明文传输用户名、密码等,基本流程:
- 客户端发起GET请求
- 服务器响应401 Unauthorized,www-Authenticate指定认证算法,realm指定安全域
- 客户端重新发起请求,Authorization指定用户名和密码信息
- 服务器认证成功,响应200
- HTTP Digest Authentication
摘要认证使用随机数+MD5加密哈希函数来对用户名、密码进行加密,在上述第二步时服务器返回随机字符串nonnce,之后客户端发送摘要=MD5(HA1:nonce:HA2),其中HA1=MD5(username:realm:password),HA2=MD5(method:digestURI) - HTTP OAuth Authentication
开放认证允许用户提供一个令牌,而不是用户名和密码来访问它们存放在特定服务者的数据,每一个令牌授权一个特定的第三方系统 - HTTP Token Authentication
令牌认证是指当用户第一次登陆时服务器生成一个token并返回给客户端,之后的每次访问客户端都会带上该token,无需再次带上用户名和密码
概念:authentication(认证)VS authorization(授权)
简单来说,authentication就是证明你是你,authorization就是允许你做哪些事情
举个简单的例子:比如现在限购政策下在长沙买房,对于非本市户口无房一族,你需要提供你的身份证、户口本、无房证明、社保证明等等给开发商,其中身份证就是认证凭据,用于证明你是你,而户口本、无房证明、社保证明就是授权凭据,说明你可以买房