分布式认证方案
一、选型分析
1.基于session的认证方式
2.基于token的认证方式
3.token认证方式原理
优点
认证流程
二、OAuth2.0
1.概述
OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。
2.认证过程举例
本例子是黑马程序员网站使用微信认证的过程,这个过程的简要描述如下:
3.OAuth2.0角色
4.四种授权模式
OAuth2.0 的授权简单理解其实就是获取令牌(token)的过程
以用户微信登录掘金为例
授权码
隐藏式
有一些Web应用是没有后端的, 属于纯前端应用,无法用上边的授权码模式。令牌的申请与存储都需要在前端完成,跳过了授权码这一步。
前端应用直接获取 token,response_type 设置为 token,要求直接返回令牌,跳过授权码,WX授权通过后重定向到指定 redirect_uri 。
密码式
用户在掘金直接输入自己的WX用户名和密码,掘金拿着信息直接去WX申请令牌,请求响应的 JSON结果中返回 token。grant_type 为 password 表示密码式授权。
凭证式
凭证式和密码式很相似,主要适用于那些没有前端的命令行应用,可以用最简单的方式获取令牌,在请求响应的 JSON 结果中返回 token。
grant_type 为 client_credentials 表示凭证式授权,client_id 和 client_secret 用来识别身份。