iOS 苹果授权登录(Sign in with Apple)系列之uniapp篇

发布时间 2023-07-17 14:12:38作者: 小小强学习网

官方网址

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”

链接:https://www.jianshu.com/p/6450a2407c24