OAuth
概括:OAuth是一个开放授权标准,服务器端允许用户在不给第三方软件密码和账户的前提下,让第三方软件访问一定的服务器端资源。
具体实现:OAuth允许第三方软件提供一个令牌,而不是用户名和密码来访问用户在服务器端的某些特定资源。某一个令牌授权只针对一个特定的第三方系统(例如,视频编辑软件在某一特定时间内,例如2小时,只能访问服务器端用户的某些特定资源(例如某一相册中的视频)。
以下为OAuth2.0的流程:
这种基于OAuth的认证机制适用于个人消费类的互联网产品,如社交类APP等应用,不太适合自认证权限管理的企业。
Cookie+Session Auth
概括:cookie+session 客户端访问服务端时,服务器在服务端创建一个session对象用来存储用户的状态信息,此session有个唯一的标识ID,并将此session ID 返回给客户端,客户端将session ID存放在cookie中,此后客户端通过cookie中的session ID与服务器端保持连接。
以下为cookie+sesssion Auth 流程:
cookie+session 多用于一些网上商城,但是对于一些原声平台不支持cookie(andorid,windows,ios)。
TOKEN Auth
概括:客户端访问服务器端时,服务器端利用某算法生成一个TOKEN返回给客户端,一般存储在cookie中或者http Authorization,下次客户端访问服务器验证客户端的TOKEN来辨别身份。
优势:
TOKEN 生成速度验证速度要比去数据库中检索session ID来的快。
cookie存在跨域问题,而token可以很好的解决跨域问题。
更适用于CDN
TOKEN AUTH 认证过程如下:
TOKEN 的认证过程分为两个方面-首次登录,其后的登录过程。
首次登录:
其后的登录过程如下: