官方网址
https://uniapp.dcloud.net.cn/tutorial/app-oauth.html#
代码集成
1、在 template 添加以下代码, 苹果授权登录(Sign in with Apple)是 iOS 13 才有的,做下系统版本判断
<template> <view class="content"> <!-- 苹果登录 --> <view class="sign-in-with-apple" v-if="system >= 13 && platform=='ios'" @click="appleLogin">sign in with apple</view> </view> </template>
2、在 script 里添加点击以下代码
<script> export default { data() { return { title: 'Hello', system: '', // 系统版本 platform: '', // 平台 } }, onLoad() { // 先判断 系统版本 uni.getSystemInfo({ success: (res) => { this.system = res.system this.platform = res.platform },fail: (err) => { },complete: () => { } }) }, methods: { // 苹果登录 appleLogin() { // 判断是 iOS13版本 uni.login({ provider: 'apple', success: (loginRes) => { uni.getUserInfo({ provider: 'apple', success: (userInfoRes) => { }, fail: (err) => { } }) }, fail: (err) => { } }) } } } </script>
3、授权成功回调
{ "errMsg": "getUserInfo:ok", "rawData": "json字符串", "userInfo": { "openId": "xxx.xxxxx.xxx", // 苹果用户唯一标识符,该值在同一个开发者账号下的所有 App 下是一样的,开发者可以用该唯一标识符与自己后台系统的账号体系绑定起来。 "fullName": {}, // 当且仅当第一次授权才会返回 "authorizationCode": "12345678xxx", // 服务器验证需要使用的参数 "identityToken": "header.payload.signature", // 服务器验证需要使用的参数 "realUserStatus": 1 // 用于判断当前登录的苹果账号是否是一个真实用户 }, "signature": "" }
使用appleId登录app后,如何删除授权
问题一:不是注销APPLE ID,只是想注销它在第三方平台上登陆的账号,比如网易的一些APP,使用appleId登录后,就会授权,下次登录就直接使用本机的appleId登录了。现在想取消这个授权。
问题二:开发者在测试apple登录后,只有首次授权时才能获取到appleid的email和fullName等信息,如果首次授权已经错过,想再次查看授权信息时,需要删除授权
"设置”>“Apple ID”>“密码与安全性”>“使用 Apple ID 的 App”>“[App 名称]”>“停止使用 Apple ID”
问题二:开发者在测试apple登录后,只有首次授权时才能获取到appleid的email和fullName等信息,如果首次授权已经错过,想再次查看授权信息时,需要删除授权
"设置”>“Apple ID”>“密码与安全性”>“使用 Apple ID 的 App”>“[App 名称]”>“停止使用 Apple ID”
链接:https://www.jianshu.com/p/6450a2407c24