app第三方授权登录之ios登录

在 iOS13 中,如果 App 提供第三方登录,就必须添加 苹果登录 Sign in with Apple 选项,并要求所有开发者于 2020年4月之前 完成现有应用的更新,否则审核不给通过。

在 HBuilderX 配置 apple 登录

1、在 HBuilderX 打开需要配置 苹果授权登录(Sign in with Apple)的项目找到 manifest.json-App SDK配置-登录鉴权-苹果登录(Sign In with Apple) 将其勾选

 

 

代码

1、在 template 添加以下代码, 苹果授权登录(Sign in with Apple)是 iOS 13 才有的,做下系统版本判断

1 <template>
2     <view class="content">
3         <!-- 苹果登录 -->
4         <view class="sign-in-with-apple" v-if="system >= 13 && platform=='ios'" @click="appleLogin">sign in with apple</view>
5     </view>
6 </template>

2、在 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": ""
}

 

posted @ 2021-05-11 15:08  我有头盔  阅读(1549)  评论(0编辑  收藏  举报