| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483 | <!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>
 |