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