针对不同的grant_type
提供不同的测试URL,
完整的OAuth测试请访问spring-oauth-client项目.
输入每一步必要的信息后点击其下面的链接地址.
从 spring-oauth-server获取 'code'
用 'code' 换取 'access_token'
输入每一步必要的信息后点击其下面的链接地址.
从 spring-oauth-server获取 'code'
code_verifier
与code_challenge
(如何生成详见工具类
PKCEUtils.java);
code_challenge |
对 code_verifier 使用指定算法进行计算(digest)并base encode的值 |
code_challenge_method |
固定值:S256 |
用 'code' 换取 'access_token'
输入username, password 后点击链接地址.
username:设备上请求 /oauth2/device_authorization
获取 user_code,
device_code,verification_uri等
一般此步骤是在设备上通过代码来完成, 此处只作演示流程
在设备上展示user_code或显示一个二维码(内容为verification_uri_complete URL)
用已经登录成功的浏览器(或另一个已经认证的设备)访问verification_uri_complete URL(可通过扫码等方式获取内容)
此处方便演示, 请点击/oauth2/device_verification并输入上一步获取到的user_code (若未认证将跳转到登录)
提示:此步骤必须在有效时间内完成, user_code的有效时长在上一步中返回的数据expires_in来决定(单位:秒, 默认5分钟)
在第2步进行的同时, 设备上后台将定时(如每隔5秒)向spring-oauth-server
发起获取token的请求/oauth2/token
(需要使用第1步中获取到 device_code 的值),
直到获取成功(即第2步操作完成授权设备登录)或超时(即设备轮询请求等待的时长超出第1步返回的时间expires_in)
提示:在第2步进行过程中调用第3步获取token API时会响应等待授权的结果(Http状态码 400, error='authorization_pending')
点击链接地址即可测试
输入refresh_token 后点击链接地址.
refresh_token: