OAuth 2.0 参数意义
?
最近在研究OAuth 2.0的技术,发现网上说的其实挺全面的,但是会给刚接触的服务器端开发者一些迷惘,就是这么多的参数如何用?我仔细理解了一下。
?
1、申请授权接口(HTTPS请求方式)
请求参数
?
必选
类型及范围
说明
client_id
true
string
申请应用时分配的AppKey。
redirect_uri
true
string
授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas page的地址。
response_type
false
string
返回类型,支持code、token,默认值为token。
state
false
string
用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。
display
false
string
授权页面的终端类型,取值见下面的说明。
scope
false
string
以英文逗号’,’分隔的权限列表,若不传递此参数,代表请求默认的basic权限。
oauth_version
False
string
(可选)版本号(目前只支持2.0)
?
redirect_uri说明:
应用开发者预先在申请应用时填写的地址,主要用于:当验证通过时,需要返回的页面,比如我开发的应用有一个登录成功的首页,那么用户在授权验证通过后,要回到我的应用的这个首页,那么这个首页的地址就是回调地址,参数state也就是需要传到我的应用首页的参数,这个参数在经过授权服务器(新浪微博)时会原封不动的传给回调地址(也就是我的应用的首页)。如果是移动终端授权,个人认为此参数和state均可以不用,只需要以json方式返回access_token即可
?
?
?
?
?
display说明:
参数取值
类型说明
default
默认的授权页面,适用于web浏览器。
mobile
移动终端的授权页面,适用于支持webView的智能手机。
返回数据
response_type为code
返回值字段
字段类型
字段说明
code
string
用于调用access_token,接口获取授权后的access token。
state
string
如果传递参数,会回传该参数。
?
response_type为token
返回值字段
字段类型
字段说明
access_token
string
用来调用其它接口的授权过的accesstoken。
expires_in
string
accesstoken有效期时间,unix的timestamp格式。
refresh_token
string
刷新token,如果有获取权限则返回。
state
string
如果传递参数,会回传该参数。
示例
response_type为token
//请求
https://api.t.sina.com.cn/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=token
?
//同意授权后会重定向
http://www.example.com/response#access_token=ACCESS_TOKEN&expires_in=250327040&refresh_token=REFRESH_TOKEN
?
response_type为code
//请求
https://api.t.sina.com.cn/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code
?
//同意授权后会重定向
http://www.example.com/response&code=CODE
?