具体过程中配置介绍如下
第一步配置参数获取code,是通过get方式获取code,这一步的实现是AC重定向让终端和oauth服务器通信,服务器返回code后,终端通过向回调域名通信把code信息传递给AC,终端具体提交的参数如下示例
http://sangfor.test/oauth2/authorize?response_type=code&client_id=appid&redirect_uri=http://oauthservice.net/ac_portal/oauth_callback.html&state=xxxxx&scope=xxxxx
里面需要提交的参数有
http://sangfor.test/oauth2/authorize 就是界面配置的重定向地址
clinet_id 对应的就是设备界面的上的appid的值
这个值可能遇到的问题就是界面上我们让填写的是appid的参数,但是实际想oauth服务器请求的是参数名是client参数名,如果需要改成appid=xxxx,这个需要修改oauth.lua脚本(具体修改方法另附)
redirect_uri 就是界面上默认的回调域名,不需要修改
state 设备内置参数,不需要在界面添加,设备自动生成,比如生成一个other_oauth-351e8f555dd133bdf3465d491575cddd
response_type 设备内置参数,默认值等于code
scope 界面可配,选填参数
第二步,通过code去获取access_token,获取方式可以采用get或者post,这个请求是AC向oauth服务器进行通讯
get 方式的请求示例如下
http://sangfor.test/accessToken?code=xxxxxxx&client_id=xxxxx&client_secret=xxxxxxx&redirect_uri=http://oauthservice.net/ac_portal/oauth_callback.html&grant_type=authorization_code
http://sangfor.test/accessToken 是界面配置获取accesstoken的地址
code 是上一步AC获取到的code,这个参数不需手动填写
clinet_id 和上一步的client_id 参数是一样的,如果需要修改成appid 也需要后台修改
redirect_uri 和上一步的参数含义是一样的
client_secret 这个值对应的就是界面配置的AppSecret,如果需要修改成比如appsecret,需要后台修改脚本
grant_type 内置固定参数,默认为authorization_code,不需要人工修改,如果需要修改这个值,需要后台修改
post 方式是采用json格式post方式提交,提交的参数和get方式是一样的,只是提交方式不一样
第三步、AC通过第二步拿到的access_token,然后用access_token去获取用户名信息
默认只携带access_token去获取用户名信息,如果需要其他信息比如还需要携带code,需要修改代码