提交 4b8bc4f9 编写于 作者: D DCloud_LXH

chore: app docs

上级 068db2cc
根据苹果审核指南要求,如果 App 使用第三方或社交登录服务 (例如,Facebook 登录、Google 登录、通过 Twitter 登录、通过 LinkedIn 登录、通过 Amazon 登录或微信登录) 来对其进行设置或验证这个 App 的用户主帐户,则该 App 必须同时提供“通过 Apple 登录”作为同等选项。详情参考:[App Store 审核指南 - 通过 Apple 登录](https://developer.apple.com/cn/app-store/review/guidelines/#sign-in-with-apple)
> HBuilderX2.4.7+版本新增支持`苹果登录(Sign in with Apple`,苹果登录是** iOS13** 新增加的功能,当你的应用使用了第三方登录比如微信登录,同时也需要集成苹果登录,否则提交AppStore审核会被拒绝
### 开通
使用苹果登录首先需要在苹果开发者后台开启 App 的 `Sign In with Apple` 服务:
- 登录到[苹果开发者后台](https://developer.apple.com/)
-[Identifiers](https://developer.apple.com/account/resources/identifiers/list)页面选择应用的 App ID(Bundle ID)进入编辑 `Capabilities` 界面,勾选 `Sign In with Apple` 服务并保存
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/apple-appid.png)
- 修改 `Sign In with Apple` 配置后需要到 [Profiles](https://developer.apple.com/account/resources/profiles/list) 更新 profile 描述文件(不需要新建),点击 Edit 重新编辑对应的 profile 文件,然后下载保存使用新的 profile 文件即可
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/apple-profile.png)
> 注:只有发布Appstore的应用才能使用苹果登录。企业版开发者账号不支持 `Sign In with Apple` (企业版开发者账号指的是用于企业内部分发App,不能用于发布 App Store 的账号,也就是价格为 299$ 的账号)
### 配置
打开项目的manifest.json文件,在“App模块配置”项的“OAuth(登录鉴权)”下,勾选“苹果登录(Sign in with Apple)”:
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/apple-manifest.png)
**注意**
- HBuilderX中标准真机运行基座使用的是企业证书签名,不支持`Sign In with Apple`
- 配置后需提交云端打包后才能生效,真机运行时请使用[自定义调试基座](https://ask.dcloud.net.cn/article/35115)
### 使用苹果登录
- uni-app项目
调用 [uni.login(OBJECT)](api/plugins/login?id=login) 发起授权登录,,调用 [uni.getUserInfo(OBJECT)](https://uniapp.dcloud.io/api/plugins/login?id=getuserinfo) 获取用户信息,OBJECT参数中provider属性值固定为`apple`
- 5+ App项目
调用 [plus.oauth.getServices(successCB,errorCB)](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.getServices) 获取登录服务对象 [plus.oauth.AuthService](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService), 再调用其 [login](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.login) 方法进行登录授权
#### 登录按钮样式
苹果对登录按钮样式有要求,请按照苹果要求统一设置登录按钮的样式,否则审核可能会被拒绝,注意以下事项:
- 按钮必须在显著的位置(避免滑动屏幕才能看到)
- 登录按钮有三种外观:白色,带有黑色轮廓线的白色和黑色,其他设计可能会影响审核;
- 按钮圆角范围及按钮最小尺寸也有要求;
- 具体规则请参考苹果 [官方文档](https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple/overview/)
下面是原生端默认的几种按钮样式供大家参考(width:130pt, height:30pt, corner radius: 6pt)
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/apple-style-zh.png)
#### 示例代码
> 注:因为是 iOS13+ 系统才支持苹果登录,所以建议在App的界面入口判断下,只有 iOS13 才显示Apple登录的选项
- uni-app项目
``` js
uni.login({
provider: 'apple',
success: function (loginRes) {
// 登录成功
uni.getUserInfo({
provider: 'apple',
success: function(info) {
// 获取用户信息成功, info.authResult中保存登录认证数据
}
})
},
fail: function (err) {
// 登录授权失败
// err.code错误码参考`授权失败错误码(code)说明`
}
});
```
- 5+ App项目
``` js
var appleOauth = null;
plus.oauth.getServices(function(services) {
for (var i in services) {
var service = services[i];
// 获取苹果授权登录对象,苹果授权登录id 为 'apple' iOS13以下系统,不会返回苹果登录对应的 service
if (service.id == 'apple') {
appleOauth = service;
break;
}
}
appleOauth.login( function(oauth){
// 授权成功
// appleOauth.authResult中保存通用认证数据
// appleOauth.appleInfo中保存苹果登录认证完整数据,参考`appleInfo`说明
}, function(err) {
// 登录授权失败
// err.code是错误码
}, {
// 默认只会请求用户名字信息,如需请求用户邮箱信息,需要设置 scope: 'email'
scope: 'email'
})
}, function(err) {
// 获取 services 失败
})
```
**appleInfo**
属性|类型|说明
:--|:--|:--|
user|String|苹果用户唯一标识符
state|String|验证信息状态
email|String|用户共享的可选电子邮件
fullName|Object|用户共享的可选全名
authorizationCode|String|验证数据
identityToken|String|Web令牌(JWT)
realUserStatus|Number|标识用户是否为真实的人 0:当前平台不支持,忽略该值;1:无法确认;2:用户真实性非常高
scope|String|返回信息作用域
**fullName**
属性|类型|说明
:--|:--|:--|
namePrefix|String|名字前缀,头衔、敬称
givenName|String|名字
middleName|String|中间名
familyName|String|姓
nameSuffix|String|名字后缀,学位、荣誉
nickName|String|昵称
**授权失败错误码(code)说明**
code|说明
:--|:--|
1000|未知错误
1001|取消授权
1002|返回值无效
1003|请求未处理
1004|授权失败
### 注意事项
1. 内置基座为企业证书签名不支持Sign in with Apple,需要提交云打包或制作自定义基座进行功能测试
2. 只有首次弹出登录授权框时才会有用户名及email的项(email需要配置 scope: 'email' ),并且用户可以删除或编辑用户名或隐藏用户邮箱,如果用户删除了用户名授权成功后fullname字段也会为空
3. 授权成功后再次调用登录接口会先校验上次授权是否依然有效,如有效,直接回调成功并返回上次授权成功时的数据,**注意,此校验不会校验identityToken是否过期**,需要用户自行处理;如果想每次都弹出授权框获取新的identityToken等信息,需要先调用'logout()',然后在调用登录接口就会弹出授权框,注意这时授权框内不会在出现用户名及邮箱,登录成功后这两个字段会为空,需要拿到 authorizationCode,identityToken 后传给服务器,然后和苹果服务器验证可获取用户名称等信息,具体请自行查阅文档;如果想在授权框中再次出现用户名或邮箱。需要在 系统设置->AppleID->密码与安全性->使用Apple ID 的 App 里面取消授权,然后再调用登录接口
#### 准备条件
- 可访问Facebook服务器
注意:中国境内可能无法访问Fackbook服务器
- 注册Facebook账号,登录[Facebook](http://www.facebook.com)
#### 创建应用
* 打开[Facebook开发者中心](http://developers.facebook.com/)
* 点击右上角"我的应用"
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/9e3ba994-95b0-46d6-9e40-0c18b9fac5d3.png)
* 进入应用管理界面,点击"创建应用"
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/0d96a58b-e31d-4f86-9372-dd84249a498b.png)
* 根据需要选择应用产品的类型(应用类型详见"详细了解应用类型"),然后点击继续
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/a940cfc2-8e8c-44cf-9334-56cb282d4f52.png)
* 填写应用信息
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/57f5f5c0-27ca-4aa7-9e68-fb051c8afccb.png)
* 创建完成后即可获取应用的应用编号(即appID)
* 为应用添加登录功能
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/4e7ad147-e4ce-40eb-a1b0-2381bdc53813.png)
#### 设置登录-iOS
* 我的应用--设置--基本,选择添加平台,选择iOS
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/cebc70d2-da0e-4708-9d05-d5f5d80de1ca.png)
* 填写信息保存即可
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/70038074-8c3a-4db8-99ab-49e14b951c79.png)
#### 设置登录-Android
* 我的应用--设置--基本,选择添加平台
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/a8fe2779-1142-452b-a4b0-f4bd61695770.png)
* 选择android平台,应用商店选择Google Play
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/afa346b7-a001-47b1-9c7e-914074153ac3.png)
* 填写必要的包名和散列信息,类名是固定的。如图
散列的获取方法,参考文档:
https://developers.facebook.com/docs/facebook-login/android 第六小节
如果获取到的散列位数不对,需要找台linux/mac 计算机。
使用下面的命令获取
keytool -exportcert -alias hbuilder -keystore ./HBuilder.keystore | openssl dgst -sha1 -binary | openssl base64
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/4c59adf0-cb40-41d7-95d4-e26102aeacd9.png)
#### 应用权限
使用Facebook登录需开启"public_profile"以及"email"的访问权限
点击"应用审核"-"权限和功能",开启"public_profile"以及"email"的高级访问权限
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/28dac1d2-f714-4477-a5c8-dd2e1b894894.png)
#### 准备条件
- 可访问Google服务器
注意:中国境内无法访问Google服务器
- 注册Google账号
#### Android开通步骤
* 打开Google 登录引导页
网址: https://developers.google.com/identity/sign-in/android/sign-in?hl=zh-cn
* 选择项目配置
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/636a9bd3-77d7-4539-b46c-0c798eb49350.png)
点击后出现项目与应用选择界面,如果你有已创建过的Firebase项目,可以直接选择。如果没有,可以选择新建一个Google Api 项目。
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/f206ec8a-c82d-41f4-9e6d-d838e21a4857.png)
* 选择项目后,在该项目下新建一个应用
选择应用平台 android
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/09c5a8aa-c698-4133-9a11-d73d59e37da5.png)
需要填写应用的包名和sha1指纹,指纹的获取方法在界面上有提示。按照提示操作即可。
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/d14feca3-94b5-467e-b197-d98b866072bc.png)
点击创建,即可完成开通步骤。
#### iOS开通步骤
* 打开[Google登录iOS引导页](http://developers.google.com/identity/sign-in/ios/start-integrating?hl=zh-cn)
* 点击创建OAuth客户端ID,填写项目名称
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/1978e9aa-5e11-4586-9caf-1c1b7c3e71bd.png)
* 选择iOS平台、填写BundleID后,点击CREATE,即可获取Client ID
![](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/26045e0b-b6f0-4c22-aa61-0d63120e1a4b.png)
### 开通
- 登录[腾讯开放平台](https://connect.qq.com/index.html),打开 “应用管理” -> “移动应用” 页面
- 在页面中选择 “创建应用” -> “创建移动应用”,根据提示填写信息创建应用
- 创建成功后,在应用详情中页面可以获取 APP ID
- 在应用详情页面的 “基本信息” -> “平台信息” 中,点击“修改”可以设置iOS平台的通用链接(UniversalLink)
更多信息详见QQ官方文档 [移动应用接入概述](https://wiki.connect.qq.com/%e7%a7%bb%e5%8a%a8%e5%ba%94%e7%94%a8%e6%8e%a5%e5%85%a5%e6%a6%82%e8%bf%b0)
### 配置
打开项目的manifest.json文件,在“App模块配置”项的“OAuth(登录鉴权)”下,勾选“QQ登录”:
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/qq-manifest.png)
- appid
QQ开放平台申请应用的AppID值
- UniversalLinks
iOS平台通用链接,必须与QQ开放平台配置的一致,推荐使用[一键生成iOS通用链接](https://uniapp.dcloud.io/api/plugins/universal-links.html)
**注意**
- HBuilderX中标准真机运行基座使用的是DCloud申请HBuilder应用的AppID等信息,仅用于体验QQ登录功能
- 配置参数需提交云端打包后才能生效,真机运行时请使用[自定义调试基座](https://ask.dcloud.net.cn/article/35115)
### 使用QQ登录
- uni-app项目
调用 [uni.login(OBJECT)](api/plugins/login?id=login) 发起授权登录,调用 [uni.getUserInfo(OBJECT)](https://uniapp.dcloud.io/api/plugins/login?id=getuserinfo) 获取用户信息,OBJECT参数中provider属性值固定为`qq`
- 5+ App项目
调用 [plus.oauth.getServices(successCB,errorCB)](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.getServices) 获取登录服务对象 [plus.oauth.AuthService](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService), 再调用其 [login](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.login) 方法进行登录认证、[getUserInfo](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.getUserInfo)方法获取用户信息
#### 示例代码
- uni-app项目
``` js
uni.login({
provider: 'qq',
success: function (loginRes) {
// 登录成功
uni.getUserInfo({
provider: 'qq',
success: function(info) {
// 获取用户信息成功, info.authResult保存用户信息
}
})
},
fail: function (err) {
// 登录授权失败
// err.code是错误码
}
});
```
- 5+ App项目
``` js
var qqOauth = null;
plus.oauth.getServices(function(services) {
for (var i in services) {
var service = services[i];
// 获取微信登录对象
if (service.id == 'qq') {
qqOauth = service;
break;
}
}
qqOauth.login( function(oauth){
// 授权成功,qqOauth.authResult 中保存授权信息
}, function(err) {
// 登录授权失败
// err.code是错误码
})
}, function(err) {
// 获取 services 失败
})
```
### 开通
- 登录[新浪微博开放平台](http://open.weibo.com/),打开 “移动应用 MOBILE” 页面
- 在页面中选择 “立即接入”,根据提示填写信息创建应用
- 创建成功后,在 “我的应用” 中点击应用,可以在应用详情页面
- 在应用详情页面的 “应用信息” -> “基本信息” 中可获取 App Key,点击编辑可设置iOS平台的通用链接(UniversalLink)
- 在应用详情页面的 “应用信息” -> “高级信息” -> “OAuth2.0 授权设置” 中可以设置授权回调页(redirect_url)
更多信息详见新浪微博官方文档 [移动应用接入](https://open.weibo.com/wiki/Connect/login)
### 配置
打开项目的manifest.json文件,在“App模块配置”项的“OAuth(登录鉴权)”下,勾选“新浪微博登录”:
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/sina-manifest.png)
- appkey
新浪微博开放平台申请应用的AppKey值
- redirect_url
新浪微博开放平台申请应用中设置的授权回调页
- UniversalLinks
iOS平台通用链接,必须与新浪微博开放平台配置的一致,推荐使用[一键生成iOS通用链接](https://uniapp.dcloud.io/api/plugins/universal-links.html)
**注意**
- HBuilderX中标准真机运行基座使用的是DCloud申请HBuilder应用的AppID等信息,仅用于体验新浪微博登录功能
- 配置参数需提交云端打包后才能生效,真机运行时请使用[自定义调试基座](https://ask.dcloud.net.cn/article/35115)
### 使用QQ登录
- uni-app项目
调用 [uni.login(OBJECT)](api/plugins/login?id=login) 发起授权登录,调用 [uni.getUserInfo(OBJECT)](https://uniapp.dcloud.io/api/plugins/login?id=getuserinfo) 获取用户信息,OBJECT参数中provider属性值固定为`sinaweibo`
- 5+ App项目
调用 [plus.oauth.getServices(successCB,errorCB)](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.getServices) 获取登录服务对象 [plus.oauth.AuthService](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService), 再调用其 [login](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.login) 方法进行登录认证、[getUserInfo](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.getUserInfo)方法获取用户信息
#### 示例代码
- uni-app项目
``` js
uni.login({
provider: 'sinaweibo',
success: function (loginRes) {
// 登录成功
uni.getUserInfo({
provider: 'sinaweibo',
success: function(info) {
// 获取用户信息成功, info.authResult保存用户信息
}
})
},
fail: function (err) {
// 登录授权失败
// err.code是错误码
}
});
```
- 5+ App项目
``` js
var weiboOauth = null;
plus.oauth.getServices(function(services) {
for (var i in services) {
var service = services[i];
// 获取微信登录对象
if (service.id == 'sinaweibo') {
weiboOauth = service;
break;
}
}
weiboOauth.login( function(oauth){
// 授权成功,weiboOauth.authResult 中保存授权信息
}, function(err) {
// 登录授权失败
// err.code是错误码
})
}, function(err) {
// 获取 services 失败
})
```
### 开通
- 登录[微信开放平台](https://open.weixin.qq.com/),添加移动应用并提交审核,审核通过后可获取应用ID(AppID),AppSecret等信息
- 在应用详情中`申请开通`微信登录功能,根据页面提示填写资料,提交审核
- 申请审核通过后即可打包使用微信授权登录功能
更多信息详见微信官方文档 [移动应用微信登录开放指南](https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Development_Guide.html)
### 配置
打开项目的manifest.json文件,在“App模块配置”项的“OAuth(登录鉴权)”下,勾选“微信登录”:
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/weixin-manifest.png)
- appid
微信开放平台申请应用的AppID值
- appSecret
微信开放平台申请应用的AppSecret值
- UniversalLinks
iOS平台通用链接,必须与微信开放平台配置的一致,推荐使用[一键生成iOS通用链接](https://uniapp.dcloud.io/api/plugins/universal-links.html)
**注意**
- HBuilderX中标准真机运行基座使用的是DCloud申请HBuilder应用的AppID等信息,仅用于体验微信登录功能
- 配置参数需提交云端打包后才能生效,真机运行时请使用[自定义调试基座](https://ask.dcloud.net.cn/article/35115)
### 使用微信登录
- uni-app项目
调用 [uni.login(OBJECT)](api/plugins/login?id=login) 发起授权登录,调用 [uni.getUserInfo(OBJECT)](https://uniapp.dcloud.io/api/plugins/login?id=getuserinfo) 获取用户信息,OBJECT参数中provider属性值固定为`weixin`
- 5+ App项目
调用 [plus.oauth.getServices(successCB,errorCB)](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.getServices) 获取登录服务对象 [plus.oauth.AuthService](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService), 再调用其 [login](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.login) 方法进行登录认证、[getUserInfo](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.getUserInfo)方法获取用户信息
#### 示例代码
- uni-app项目
``` js
uni.login({
provider: 'weixin',
success: function (loginRes) {
// 登录成功
uni.getUserInfo({
provider: 'weixin',
success: function(info) {
// 获取用户信息成功, info.authResult保存用户信息
}
})
},
fail: function (err) {
// 登录授权失败
// err.code是错误码
}
});
```
- 5+ App项目
``` js
var weixinOauth = null;
plus.oauth.getServices(function(services) {
for (var i in services) {
var service = services[i];
// 获取微信登录对象
if (service.id == 'weixin') {
weixinOauth = service;
break;
}
}
weixinOauth.login( function(oauth){
// 授权成功,weixinOauth.authResult 中保存授权信息
}, function(err) {
// 登录授权失败
// err.code是错误码
})
}, function(err) {
// 获取 services 失败
})
```
<a id="secret"/>
#### 配置参数安全性问题
HBuilderX中配置的appsecret参数云端打包后会保存在apk/ipa中,对于安全性要求高的开发者可能担心存在参数泄露的风险,可以采取以下方式处理。
- 在HBuilderX中仅配置appid,appsecret参数随意输入,调用 [uni.login(OBJECT)](api/plugins/login?id=login) 时设置 `onlyAuthorize` 为 true,成功回调中通过 info.code 获取授权临时票据(code)
- 通过服务器完成授权认证
在客户端获取授权临时票据(code)后提交业务服务器,在业务服务器使用code+appsecret向微信开放平台获取用户信息,这种方式appsecret仅保存在业务服务器,安全性更高
微信开放平台服务器的对接流程参考:[授权后接口调用](https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317853&token=&lang=zh_CN)
> 注:5+ App项目可以调用weixinOauth对象的 [authorize](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.authorize)方法请求授权获取临时票据(code)
App端OAuth(登录鉴权)模块封装了市场上主流的三方登录SDK,提供JS API统一调用登录鉴权功能。
|项目类型|API|
|:-|:-|
|uni-app|[uni.preLogin(OBJECT)](https://uniapp.dcloud.io/api/plugins/login?id=prelogin)[uni.login(OBJECT)](api/plugins/login?id=login)[uni.getUserInfo(OBJECT)](https://uniapp.dcloud.io/api/plugins/login?id=getuserinfo)[uni.closeAuthView()](https://uniapp.dcloud.io/api/plugins/login?id=closeauthview)[uni.getCheckBoxState(OBJECT)](https://uniapp.dcloud.io/api/plugins/login?id=getcheckboxstate)[uni.getUniverifyManager(OBJECT)](https://uniapp.dcloud.io/api/plugins/login?id=getuniverifymanager)|
|5+App/Wap2App|[plus.oauth.*](https://www.html5plus.org/doc/zh_cn/oauth.html)
如果服务端使用[uniCloud](https://uniapp.dcloud.io/uniCloud/README),官方提供了[uni-id](https://uniapp.dcloud.net.cn/uniCloud/uni-id)云端统一登录服务,把微信登录、短信验证码登录及角色权限管理等服务端登录开发,进行了统一的封装。前端统一的`uni.login`和云端统一的`uni-id`搭配,可以极大提升登录业务的开发效率,强烈推荐给开发者使用。uni-id的文档另见:[https://uniapp.dcloud.net.cn/uniCloud/uni-id](https://uniapp.dcloud.net.cn/uniCloud/uni-id)
使用登录鉴权功能需在项目manifest.json的“App模块配置”中勾选“OAuth(登录鉴权)”,并根据项目实际情况勾选使用的三方登录平台:
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/modules.png)
> 提示:三方登录模块参数配置需提交云端打包后才能生效,真机运行调试时请使用[自定义基座](http://ask.dcloud.net.cn/article/35115)
使用登录鉴权功能基本流程:
- 向三方登录平台申请开通,有些平台(如微信登录)申请成功后会获取appid
- 在HBuilderX中配置申请的参数(如appid等),提交云端打包生成[自定义基座](http://ask.dcloud.net.cn/article/35115)
- 在App项目中调用API进行登录,成功后获取到授权标识提交到业务服务器完成登录操作
支持的三方登录平台:
- [一键登录(univerify)](https://uniapp.dcloud.io/univerify)
- [苹果登录(Sign in with Apple)](https://uniapp.dcloud.io/app-oauth-apple)
- [微信登录](https://uniapp.dcloud.io/app-oauth-weixin)
- [QQ登录](https://uniapp.dcloud.io/app-oauth-qq)
- [新浪微博登录](https://uniapp.dcloud.io/app-oauth-sina)
- [Google登录](https://uniapp.dcloud.io/app-oauth-google)
- [Facebook登录](https://uniapp.dcloud.io/app-oauth-facebook)
......@@ -69,7 +69,14 @@
* [友盟统计](/tutorial/app-statistic-umeng.md)
* [Google统计](/tutorial/app-statistic-google.md)
* 其它配置
* [自定义404错误页面](/tutorial/app-webview-error.md)
* [Android设置UrlSchemes](/tutorial/app-android-schemes.md)
* [Android设置minSdkVersion](/tutorial/app-android-minsdkversion.md)
* [Android设置targetSdkVersion](/tutorial/app-android-targetsdkversion.md)
* [Android设置CPU类型](/tutorial/app-android-abifilters.md)
* [iOS设置UrlSchemes](/tutorial/app-ios-schemes.md)
* [iOS应用访问白名单](/tutorial/app-ios-schemewhitelist.md)
* [iOS后台运行能力](/tutorial/ios-uibackgroundmodes.md)
* [iOS符号表文件](/tutorial/app-ios-dsym.md)
* [App 上架注意](/tutorial/store.md)
* [国内应用市场上架](/tutorial/android-store.md)
......
......@@ -8,7 +8,7 @@ App端OAuth(登录鉴权)模块封装了市场上主流的三方登录SDK,提
如果服务端使用[uniCloud](https://uniapp.dcloud.io/uniCloud/README),官方提供了[uni-id](https://uniapp.dcloud.net.cn/uniCloud/uni-id)云端统一登录服务,把微信登录、短信验证码登录及角色权限管理等服务端登录开发,进行了统一的封装。前端统一的`uni.login`和云端统一的`uni-id`搭配,可以极大提升登录业务的开发效率,强烈推荐给开发者使用。uni-id的文档另见:[https://uniapp.dcloud.net.cn/uniCloud/uni-id](https://uniapp.dcloud.net.cn/uniCloud/uni-id)
使用登录鉴权功能需在项目manifest.json的“App模块配置”中勾选“OAuth(登录鉴权)”,并根据项目实际情况勾选使用的三方登录平台:
![](https://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/oauth/modules.png)
![](https://native-res.dcloud.net.cn/images/uniapp/oauth/modules.png)
> 提示:三方登录模块参数配置需提交云端打包后才能生效,真机运行调试时请使用[自定义基座](http://ask.dcloud.net.cn/article/35115)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册