几种常用的服务器认证机制

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 的认证过程分为两个方面-首次登录,其后的登录过程。

首次登录:

其后的登录过程如下:

原文地址:https://www.cnblogs.com/zydxx/p/9550939.html