<!DOCTYPE HTML>
|
<html>
|
<head>
|
<meta charset="utf-8">
|
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
<meta name="HandheldFriendly" content="true">
|
<meta name="MobileOptimized" content="320">
|
<title>OAuth Document</title>
|
<link rel="stylesheet" type="text/css" href="res/doc.css" charset="utf-8">
|
<link rel="stylesheet" type="text/css" href="res/prettify.sons.css" charset="utf-8">
|
<script type="text/javascript" src="res/doc.js" charset="utf-8"></script><script type="text/javascript" src="res/prettify.js" charset="utf-8"></script>
|
</head>
|
<body><div id="content" class="content">
|
<h1><a name="plus.oauth">oauth</a></h1>
|
<p>OAuth模块管理客户端的用户登录授权验证功能,允许应用访问第三方平台的资源。</p>
|
<h2>方法:</h2>
|
<ul><li>
|
<a href="#plus.oauth.getServices">getServices</a>: 获取登录授权认证服务列表</li></ul>
|
<h2>对象:</h2>
|
<ul>
|
<li>
|
<a href="#plus.oauth.AuthService">AuthService</a>: 登录授权认证服务对象</li>
|
<li>
|
<a href="#plus.oauth.AppleInfo">AppleInfo</a>: 苹果登录认证信息</li>
|
<li>
|
<a href="#plus.oauth.AuthOptions">AuthOptions</a>: JSON对象,授权认证参数选项</li>
|
<li>
|
<a href="#plus.oauth.AuthInfo">AuthInfo</a>: 登录授权认证信息</li>
|
<li>
|
<a href="#plus.oauth.UserInfo">UserInfo</a>: 登录授权用户信息</li>
|
</ul>
|
<h2>回调方法:</h2>
|
<ul>
|
<li>
|
<a href="#plus.oauth.ServicesSuccessCallback">ServicesSuccessCallback</a>: 获取登录授权认证服务成功回调</li>
|
<li>
|
<a href="#plus.oauth.AuthorizeSuccessCallback">AuthorizeSuccessCallback</a>: 授权认证成功回调函数</li>
|
<li>
|
<a href="#plus.oauth.LogoutSuccessCallback">LogoutSuccessCallback</a>: 注销登录授权认证操作成功回调函数</li>
|
<li>
|
<a href="#plus.oauth.SuccessCallback">SuccessCallback</a>: 登录授权认证服务操作成功回调函数</li>
|
<li>
|
<a href="#plus.oauth.ErrorCallback">ErrorCallback</a>: 登录授权认证服务操作失败回调函数</li>
|
</ul>
|
<h2>权限:</h2>
|
<p>permissions</p>
|
<pre class="prettyprint linenums">
|
{
|
// ...
|
"permissions":{
|
// ...
|
"OAuth": {
|
"description": "登录鉴权"
|
}
|
}
|
}
|
</pre>
|
<h1><a name="plus.oauth.AuthService">AuthService</a></h1>
|
<p>登录授权认证服务对象</p>
|
<pre class="prettyprint linenums">
|
interface plus.oauth.AuthService {
|
// Attributes
|
attribute String id;
|
attribute String description;
|
attribute AppleInfo appleInfo;
|
attribute AuthInfo authResult;
|
attribute UserInfo userInfo;
|
attribute JSON extra;
|
|
// Methods
|
function void author(successCallback, errorCallback, options);
|
function void login(successCallback, errorCallback, options);
|
function void logout(successCallback, errorCallback);
|
function void getUserInfo(successCallback, errorCallback);
|
function void addPhoneNumber(successCallback, errorCallback);
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
AuthService对象用于表示登录授权认证服务,在JS中为对象,用于向系统进行登录授权认证操作。
|
</p>
|
<h2>属性:</h2>
|
<ul>
|
<li>
|
<a href="#plus.oauth.AuthService.id">id</a>: 登录授权认证服务标识</li>
|
<li>
|
<a href="#plus.oauth.AuthService.description">description</a>: 登录授权认证服务描述</li>
|
<li>
|
<a href="#plus.oauth.AuthService.appleInfo">appleInfo</a>: 苹果登录认证数据</li>
|
<li>
|
<a href="#plus.oauth.AuthService.authResult">authResult</a>: 登录认证数据</li>
|
<li>
|
<a href="#plus.oauth.AuthService.userInfo">userInfo</a>: 登录用户信息</li>
|
<li>
|
<a href="#plus.oauth.AuthService.extra">extra</a>: 登录授权认证扩展信息</li>
|
</ul>
|
<h2>方法:</h2>
|
<ul>
|
<li>
|
<a href="#plus.oauth.AuthService.authorize">authorize</a>: 请求授权认证</li>
|
<li>
|
<a href="#plus.oauth.AuthService.login">login</a>: 请求登录认证</li>
|
<li>
|
<a href="#plus.oauth.AuthService.logout">logout</a>: 注销登录认证</li>
|
<li>
|
<a href="#plus.oauth.AuthService.getUserInfo">getUserInfo</a>: 获取用户信息</li>
|
</ul>
|
<h1><a name="plus.oauth.AppleInfo">AppleInfo</a></h1>
|
<p>苹果登录认证信息</p>
|
<pre class="prettyprint linenums">
|
interface plus.oauth.AppleInfo {
|
attribute String user;
|
attribute String state;
|
attribute String email:
|
attribute JSON fullName;
|
attribute String authorizationCode;
|
attribute String identityToken;
|
attribute Number realUserStatus;
|
attribute String scope;
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
此对象仅在使用苹果登录时有效,用于保存苹果登录返回的数据。
|
</p>
|
<h2>属性:</h2>
|
<ul>
|
<li>user: <em>(<font class="type">String</font>
|
类型
|
)</em>苹果用户唯一标识符<br>
|
</li>
|
<li>state: <em>(<font class="type">String</font>
|
类型
|
)</em>验证信息状态<br>
|
</li>
|
<li>email: <em>(<font class="type">String</font>
|
类型
|
)</em>用户共享的可选电子邮件<br>
|
</li>
|
<li>fullName: <em>(<font class="type">JSON</font>
|
类型
|
)</em>用户共享的可选全名<br><p>
|
可能包括以下属性:
|
namePrefix - String类型,名字前缀,头衔、敬称;
|
givenName - String类型,名字;
|
middleName - String类型,中间名;
|
familyName - String类型,姓;
|
nameSuffix - String类型,名字后缀,学位、荣誉;
|
nickName - String类型,昵称。
|
</p>
|
</li>
|
<li>authorizationCode: <em>(<font class="type">String</font>
|
类型
|
)</em>验证数据<br>
|
</li>
|
<li>identityToken: <em>(<font class="type">String</font>
|
类型
|
)</em>Web令牌(JWT)<br>
|
</li>
|
<li>realUserStatus: <em>(<font class="type">Number</font>
|
类型
|
)</em>标识用户是否为真实的人<br><p>
|
0 - 当前平台不支持,忽略该值;
|
1 - 无法确认;
|
2 - 用户真实性非常高。
|
</p>
|
</li>
|
</ul>
|
<h1><a name="plus.oauth.AuthOptions">AuthOptions</a></h1>
|
<p>JSON对象,授权认证参数选项</p>
|
<pre class="prettyprint linenums">
|
interface plus.oauth.AuthOptions {
|
attribute String scope;
|
attribute String state;
|
attribute String appid;
|
attribute String appkey;
|
attribute String appsecret;
|
attribute String redirect_uri;
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
此对象支持的属性值由登录授权认证服务定义。
|
例如“微信”,则可配置以下参数:
|
scope - 应用授权作用域;
|
state - 用于保持请求和回调的状态参数。
|
</p>
|
<h2>属性:</h2>
|
<ul>
|
<li>scope: <em>(<font class="type">String</font>
|
类型
|
)</em>申请的权限作用范围<br><p>
|
如果存在多个权限,则以","符号分割。
|
</p>
|
</li>
|
<li>state: <em>(<font class="type">String</font>
|
类型
|
)</em>客户端的当前状态,可以指定任意值,登录认证后原封不动的返回保存到AuthService对象的extra中<br>
|
</li>
|
<li>appid: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权认证服务平台申请的appid<br><p>
|
动态设置登录授权服务中需要使用的appid,仅需要此参数的登录授权服务(如“微信登录”、“QQ登录”)支持。
|
如果未设置则使用运行环境中内置的appid值(如在HBuilder中可在manifest.json的SDK配置项中进行设置)。
|
</p>
|
</li>
|
<li>appkey: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权认证服务平台申请的appkey<br><p>
|
动态设置登录授权服务中需要使用的appkey,仅需要此参数的登录授权服务(如“新浪微博登录”、“360登录”)支持。
|
如果未设置则使用运行环境中内置的appkey值(如在HBuilder中可在manifest.json的SDK配置项中进行设置)。
|
</p>
|
</li>
|
<li>appsecret: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权认证服务平台申请的appsecret<br><p>
|
动态设置登录授权服务中需要使用的appsecret,仅需要此参数的登录授权服务(如“微信登录”、“新浪微博登录”)支持。
|
如果未设置则使用运行环境中内置的appkey值(如在HBuilder中可在manifest.json的SDK配置项中进行设置);
|
当开放平台申请的appsecret值涉及到安全问题时,可在应用运行时从服务器获取,然后通过此api动态设置。
|
</p>
|
</li>
|
<li>redirect_url: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权认证服务平台申请的redirect_url<br><p>
|
动态设置登录授权服务中需要使用的redirect_url,仅需要此参数的登录授权服务(如“新浪微博登录”)支持。
|
如果未设置则使用运行环境中内置的redirect_url值(如在HBuilder中可在manifest.json的SDK配置项中进行设置)。
|
</p>
|
</li>
|
</ul>
|
<h1><a name="plus.oauth.AuthInfo">AuthInfo</a></h1>
|
<p>登录授权认证信息</p>
|
<pre class="prettyprint linenums">
|
interface plus.oauth.AuthInfo {
|
attribute String openid;
|
attribute String access_token;
|
attribute String expires_in:
|
attribute String refresh_token;
|
attribute String scope;
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
此对象仅定义标准属性,登录授权认证服务可扩展自定义数据。
|
例如“微信”登录授权服务,则包括以下数据:
|
unionid - 用户统一标识,针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。
|
</p>
|
<h2>属性:</h2>
|
<ul>
|
<li>access_token: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权的访问令牌<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>openid: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户的唯一标识<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>expires_in: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权访问令牌过期时间<br><p>
|
单位为秒,如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>refresh_token: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权的更新令牌<br><p>
|
用来获取下一次的访问令牌,如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>scope: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权的权限范围<br><p>
|
如果存在多个权限,则以","符号分割。
|
</p>
|
</li>
|
</ul>
|
<h1><a name="plus.oauth.UserInfo">UserInfo</a></h1>
|
<p>登录授权用户信息</p>
|
<pre class="prettyprint linenums">
|
interface plus.oauth.UserInfo {
|
attribute String openid;
|
attribute String headimgurl:
|
attribute String nickname;
|
attribute String email;
|
attribute String phonenumber;
|
attribute String sex;
|
attribute String province;
|
attribute String city;
|
attribute String country;
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
用于保存登录授权用户的信息。
|
此对象仅定义标准属性,登录授权认证服务可扩展自定义数据。
|
例如“微信”登录授权服务,可能包括以下自定义数据:
|
privilege - 用户特权信息,json数组,如微信沃卡用户为(chinaunicom);
|
unionid - 用户统一标识,针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。
|
</p>
|
<h2>属性:</h2>
|
<ul>
|
<li>openid: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户的唯一标识<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>headimgurl: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户的头像图片地址<br><p>
|
要求为"http://"或"https://"开头的地址,如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>nickname: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户的昵称<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>email: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户的邮箱地址<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>phonenumber: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户的电话号码<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>sex: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户的性别<br><p>
|
1为男性,2为女性。
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>province: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户注册的省份信息<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>city: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户注册的城市信息<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
<li>country: <em>(<font class="type">String</font>
|
类型
|
)</em>登录授权用户注册的国家信息<br><p>
|
如果登录授权服务不支持此属性,则返回"undefined"。
|
</p>
|
</li>
|
</ul>
|
<h1><a name="plus.oauth.ServicesSuccessCallback">ServicesSuccessCallback</a></h1>
|
<p>获取登录授权认证服务成功回调</p>
|
<pre class="prettyprint linenums">
|
void ServicesSuccessCallback( services ) {
|
// Get oauth services success code
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
当获取登录授权认证服务列表成功时触发,并通过services参数返回运行环境支持的登录授权认证服务列表。
|
</p>
|
<h2>参数:</h2>
|
<ul><li>services:
|
<em>(
|
<font class="type">Array</font>[
|
<a href="#plus.oauth.AuthService">AuthService</a>
|
]
|
|
)
|
必选 </em>运行环境支持的登录授权认证服务列表<br>
|
运行环境支持的登录授权认证服务列表数组,可通过services.length获取服务列表的数目。
|
如果当前运行环境没有支持的登录授权认证服务,则返回空数组。
|
</li></ul>
|
<h2>返回值:</h2>
|
<font class="type">void</font>
|
: 无<h1><a name="plus.oauth.AuthorizeSuccessCallback">AuthorizeSuccessCallback</a></h1>
|
<p>授权认证成功回调函数</p>
|
<pre class="prettyprint linenums">
|
void onAuthorizeSuccess(event){
|
// authorize code
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
授权认证成功时触发,并返回操作结果。
|
</p>
|
<h2>参数:</h2>
|
<ul><li>event:
|
<em>(
|
<font class="type">JSON</font>
|
)
|
必选 </em>授权认证回调参数<br>
|
包括以下字段:
|
event.target - 授权认证服务对象;
|
event.scope - 申请的权限作用范围,调用authorize方法传入的scope值;
|
event.state - 自定义参数,调用authorize方法传入的state值;
|
event.code - 用户换取access_token的code;
|
event.lang - 微信客户端当前语言;
|
event.country - 微信用户当前国家信息。
|
</li></ul>
|
<h2>返回值:</h2>
|
<font class="type">void</font>
|
: 无<h1><a name="plus.oauth.LogoutSuccessCallback">LogoutSuccessCallback</a></h1>
|
<p>注销登录授权认证操作成功回调函数</p>
|
<pre class="prettyprint linenums">
|
void onLogoutSuccess(event){
|
// logout code
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
注销登录授权认证成功时触发,并返回操作结果。
|
</p>
|
<h2>参数:</h2>
|
<ul><li>event:
|
<em>(
|
<font class="type">JSON</font>
|
)
|
必选 </em>注销登录授权认证操作回调事件参数<br>
|
包括以下参数:
|
event.target - 表示登录授权认证服务对象;
|
其它属性可保存注销登录授权的扩展数据。
|
</li></ul>
|
<h2>返回值:</h2>
|
<font class="type">void</font>
|
: 无<h1><a name="plus.oauth.SuccessCallback">SuccessCallback</a></h1>
|
<p>登录授权认证服务操作成功回调函数</p>
|
<pre class="prettyprint linenums">
|
void onSuccess(event){
|
// auth code
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
登录授权认证服务操作如请求登录授权认证、获取登录授权用户信息成功时触发,并返回操作结果。
|
</p>
|
<h2>参数:</h2>
|
<ul><li>event:
|
<em>(
|
<font class="type">JSON</font>
|
)
|
必选 </em>登录授权认证服务操作回调事件参数<br>
|
包括以下参数:
|
event.target - 表示登录授权认证服务对象,可以通过此对象的authResult、userInfo属性来获取操作结果信息。
|
</li></ul>
|
<h2>返回值:</h2>
|
<font class="type">void</font>
|
: 无<h1><a name="plus.oauth.ErrorCallback">ErrorCallback</a></h1>
|
<p>登录授权认证服务操作失败回调函数</p>
|
<pre class="prettyprint linenums">
|
void onError(error){
|
// Error code
|
}
|
</pre>
|
<h2>说明:</h2>
|
<p class="des">
|
登录授权认证服务操作如请求登录授权认证、注销登录授权认证、获取登录授权用户信息失败时触发,并返回错误信息。
|
</p>
|
<h2>参数:</h2>
|
<ul><li>error:
|
<em>(
|
<font class="type">Exception</font>
|
)
|
必选 </em>操作失败错误信息<br>
|
包括以下参数:
|
error.code - 表示错误代码;
|
error.message - 错误描述信息;
|
</li></ul>
|
<h2>返回值:</h2>
|
<font class="type">void</font>
|
: 无<br><br>
|
</div></body>
|
</html>
|