iOS 苹果授权登录(Sign in with Apple)系列之uniapp篇
官方网址
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

浙公网安备 33010602011771号