轻笔记OAuth2文档.doc
轻笔记OAuth2文档
版本记录:
日期作者更新内容2012-7-23李振璟V1.02012-7-24梁强Review(李振璟,李书军)2012-7-27梁强V1.0.4
补充OAuth流程介绍
目录1.1 获取Authorization Code4
1.2 通过Authorization Code获取access_token5
1.3 通过refresh_token刷新access_token5
1.4 client端直接获取access_token6
基本约定
该API基于HTTP协议
要求基于HTTP传输的数据编码格式是UTF-8
API的响应都是JSON格式数据
接口说明
接口通用的url格式为:
/oauth2/action
这里的action是一个代词,指的是具体的authorize,token等等
如:
/oauth2/authorize
接口返回值:
不管接口调用是成功还是失败都会返回result_code。如果失败返回:
{“result_code”:100000,”message”: ”XXXXXX”}
result_code的值大于0,并且带有message参数
如果成功则result_code的值等于0,后面带有相关的参数,不再有message参数
{“result_code”:0,”access_token”: ”xxxxxxx”,”expires_in”:86400}
接口在成功时还会返回其他一些数据,具体看接口说明
Oauth流程介绍
OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。
轻笔记登录OAuth2.0采用OAuth2.0标准协议来进行用户身份验证和获取用户授权,相对于OAuth1.0协议,其认证流程更简单和安全。
如果您想对OAuth2.0开放标准进行扩展阅读,请参看:OAuth标准(英文)?|?OAuth维基百科(中文)?
对于自身有服务器的应用,推荐采用以下流程:
使用client_id,让用户登录授权,获取Authorization Code。
在服务器端,用获取的code和client_secret,获取access_token和refresh_token。同时也会获取到用户的user_id,该id为用户唯一标识。
使用access_token和user_id访问已公开的服务。
当access_token过期时,可以使用refresh_token重新获取新的access_token、refresh_token和user_id,而无需用户重新登录授权。
对于没有服务器的应用,推荐采用直接获取token的流程:
使用client_id,让用户登录授权,直接获取access_token和user_id。
使用access_token和user_id访问已公开的服务。
采用此种方式不能获取到refresh_token。
接口列表
获取Authorization Code
请求地址:
/oauth2/authorize
请求方法:
GET
请求参数:
参数是否必须含义response_type必须授权类型,此值固定为”code”client_id必须申请轻笔记应用成功后,分配给应用的唯一keyredirect_uri必须成功授权后的回调地址,建议设置为网站首页或者用户中心。如应用已设置,则必须与设置一致。scope可选请求用户授权时向用户显示的可进行授权的列表(未处理)state可选client端的状态值,成功授权后回调时会原样带回display可选用于展示的样式,手机端为mobile,不传则展示PC网站下的样式。
返回说明:
如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址后带上Authorization Code和原始的state值。如:/login?code=9A5F************************06AF&state=test注意:此code会在10分钟后过期。
通过Authorization Code获取access_token
请求地址:
/oauth2/token
请求方法:
POST
请求参数:
参数是否必须含义grant_type必须授权类型,此值固定为”authorization_code”client_id必须申请轻笔记应用成功后,分配给应用的唯一keyclient_secret必须申请轻笔记应用成功后,分配给