创建表 oauth_client_details 用来存储客户端信息
CREATE TABLE `oauth_client_details` (
`client_id` VARCHAR ( 256 ) CHARACTER
SET utf8 NOT NULL,
`resource_ids` VARCHAR ( 256 ) CHARACTER
SET utf8 DEFAULT NULL,
`client_secret` VARCHAR ( 256 ) CHARACTER
SET utf8 DEFAULT NULL,
`scope` VARCHAR ( 256 ) CHARACTER
SET utf8 DEFAULT NULL,
`authorized_grant_types` VARCHAR ( 256 ) CHARACTER
SET utf8 DEFAULT NULL,
`web_server_redirect_uri` VARCHAR ( 256 ) CHARACTER
SET utf8 DEFAULT NULL,
`authorities` VARCHAR ( 256 ) CHARACTER
SET utf8 DEFAULT NULL,
`access_token_validity` INT ( 11 ) DEFAULT NULL,
`refresh_token_validity` INT ( 11 ) DEFAULT NULL,
`additional_information` VARCHAR ( 4096 ) CHARACTER
SET utf8 DEFAULT NULL,
`autoapprove` VARCHAR ( 256 ) CHARACTER
SET utf8 DEFAULT NULL,
PRIMARY KEY ( `client_id` )
) ENGINE = INNODB DEFAULT CHARSET = utf8;
添加两个客户端,wms 和 crm
登录流程
登录步骤
http://localhost:8055/oauth/authorize?response_type=code&client_id=wms&redirect_uri=http://localhost:8083/test/login&scope=all
参数 | 值 | 必填 |
---|---|---|
response_type | 固定传 code | 是 |
client_id | 客户端 id | 是 |
redirect_uri | 登录成功后回调的地址, | 是 |
scope | 根据配置填写 | 是 |
3、单点登录服务判断该用户首次登录,重定向到登录界面
4、用户在输入账号 、密码,点击登录
5、验证登录成功后,重定向到 redirect_uri 参数指定的网址( http://localhost:8081/wms)。跳转成功后,获取 code 授权码
http://localhost:8081/wms?code=cIlQAq
6、拿到授权码后,向单点登录服务发送获取 token 请求
POST 请求,参数使用 form 表单提交
localhost:8055/oauth/token?grant_type=authorization_code&client_id=wms&client_secret=TGgxxvGWUTx7JnOBfujl8zYD2a3GjOM3&code=cIlQAq&redirect_uri=http://localhost:8081/wms
参数 | 值 | 必填 |
---|---|---|
client_id | deliver | 是 |
client_secret | 配置在数据库表 oauth_client_details | 是 |
grant_type | 固定传 authorization_code | 是 |
code | 授权码,从步骤5获取 | 是 |
redirect_uri | 回调地址,和第2步传入的 redirect_uri 一致 | 是 |
至此,WMS 系统成功获取单点登录服务 token,成功登录
场景:经过上述步骤,用户已成功登录 WMS 系统,现用户再登录 CRM 系统,不需要输入账号密码,直接进入 CRM 系统
登录流程
登录步骤
http://localhost:8055/oauth/authorize?response_type=code&client_id=crm&scope=all&redirect_uri=http://localhost:8082/crm
http://localhost:8082/crm?code=VhfYDT
6、拿到授权码后,向单点登录服务发送获取 token 请求
POST 请求,参数使用 form 表单提交
localhost:8055/oauth/token?grant_type=authorization_code&client_id=crm&client_secret=TGgxxvGWUTx7JnOBfujl8zYD2a3GjOM3&code=VhfYDT&redirect_uri=http://localhost:8082/crm
至此,CRM 系统成功获取单点登录服务 token,成功登录