apicloud中微信第三方登录的问题
混合开发移动应用很火啊现在,多数公司都要求是必备技能,或者加分技能,所以学习来了
如下是作为前端工作者应该了解的内容,更加详细的前往官方示例
*** 结合apicloud官方提供的模块——wxPlus或者是wx(新旧版本而已,从4月份开始都需要使wxPlus)
类型一:微信、qq、微博等;类型二:apple登录
以微信登录为例说明:
● apicloud官方有两种可选模块:wx wxPlus,后者是升级版,现如今必须使用升级版(wxPlus),因为涉及到ios上架问题(旧模块中含有UIWebView信息,不被接受)
● 配置:
- 配置1:在config.xml中做如下配置
<feature name="wxPlus">
<param name="urlScheme" value="wx6exxxxxxxxd8f"/>
<param name="apiKey" value="wx6exxxxxxxxd8f"/>
<param name="apiSecret" value="9f658xxxxxxxxxxxxx322505f"/>
<param name="universalLink" value="https://app.xxxxxx.cn/"/>
</feature>
urlScheme、apiKey:从微信开放平台获取的appid
apiSecret:从微信开放平台获取的秘钥
- 配置2:创建UZApp.entitlements文件,放在res目录下,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
</dict>
</plist>
- 开通 Associated Domains
页面代码:
● 判断是否安装了微信
● 申请授权,调起微信授权页面
wxPlus.auth
● 根据授权拿到的code去获取token
wxPlus.getToken
● 获取用户信息,可以拿到openId/头像、昵称、性别、等信息,根据业务需求使用
wxPlus.getUserInfo
注意点:
- 获取授权:提示“包名不对”,检查安卓证书中的别名和控制台的别名要一致
- 提示“未知错误”“code:1000”:需要配置:universal links,参照上面“配置2”步骤
按照上边的步骤来处理,应该是没什么问题的。
2.apple登录
应用中有第三方登录,就必须要有apple登录
参考地址;https://docs.apicloud.com/Client-API/Func-Ext/Apple
● 配置entitlements文件,如上“配置2”
● 判断手机系统,13以及以上的系统才有apple登录功能
api.systemVersion获取手机系统版本,处理可以拿到具体版本号,例如:13
● 用苹果账号登录:
引入apple模块,调用login方法,获取identityToken、user,传递给后台,后台生成token作为和正常的用户一样去登录
微信、apple登录的demo地址,可自行拉取:
https://github.com/fairy66/loginDemo.git