苹果APP发布过程中,如果使用了微信登录,那么就必须使用苹果登录,不然是无法通过苹果认证上架的!
来自--本人残酷的上传经验
Uniapp的说明:https://ask.dcloud.net.cn/article/id-36651__page-1
本教程参考于:https://www.freesion.com/article/85681195137/
分析步骤
- APP给苹果服务器发送登录需求
- 苹果服务器给APP发送数据
- APP将数据返回给后台
- 后台进行校验
这里附上,苹果给前端的值
{
"errMsg": "getUserInfo:ok",
"userInfo": {
"openId": "001540.41484a85a1684669983f013affd74ca6.0611",
"fullName": {
"familyName": "Wu",
"giveName": "Yan",
"givenName": "Yan"
},
"email": "x5nqhn4mvj@privaterelay.appleid.com",
"authorizationCode": "cb1ce78d4e7ea4d94a28f34b78a138c05.0.rrvuq.kS_CJAPw7vQkgk1QBaxV3A",
"identityToken": "eyJraWQiOiJZdXlYb1kiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLmhlZmVpeHVubGlhby56aGVubGlhbyIsImV4cCI6MTYzNzEyOTQ2MywiaWF0IjoxNjM3MDQzMDYzLCJzdWIiOiIwMDE1NDAuNDE0ODRhODVhMTY4NDY2OTk4M2YwMTNhZmZkNzRjYTYuMDYxMSIsImNfaGFzaCI6Ik0xMlJWZkhVR0VVdVR4T3hoY3dFa0EiLCJlbWFpbCI6Ing1bnFobjRtdmpAcHJpdmF0ZXJlbGF5LmFwcGxlaWQuY29tIiwiZW1haWxfdmVyaWZpZWQiOiJ0cnVlIiwiaXNfcHJpdmF0ZV9lbWFpbCI6InRydWUiLCJhdXRoX3RpbWUiOjE2MzcwNDMwNjMsIm5vbmNlX3N1cHBvcnRlZCI6dHJ1ZSwicmVhbF91c2VyX3N0YXR1cyI6Mn0.jlUvockL_NHBImswDaX0E_PZKf-BzhUUVxdNmdJ98C7ob8lv9zUltw4Mk1Ua74Ay_LrExPkOxtu4Db89AnRowmZL69-JvJu9oWpKmi03rjjarD7gg1V-XoTHlbT6yCjPVBL-5OjG6WJ5Z9GkmSDT-BgpXQevzhfPdkVNsi-fLRMJEO5oKR8pM9INPnT3kzAGbeur9RGR-jCYBv-5kXWi4oD0q_klw-of4Pyw4a9nrvcOUqdUKSrK8RyeL-O5cegDBRstmXieTNRkZFPay8TVG9oFgNhY28Zw5vdxw6zx5t2Ep-kXD0Is6lzy2Y0054kkoqpncNn7GR0OyAs0FBFlZQ",
"realUserStatus": 2
}
}
说明:IdentityToken 解析出的email应该是与token解析是一致的。
下面苹果传给Uniapp客户端的信息:
1、appleInfo
属性 | 类型 | 说明 |
---|---|---|
user | String | 苹果用户唯一标识符 |
state | String | 验证信息状态 |
String | 用户共享的可选电子邮件 | |
fullName | Object | 用户共享的可选全名 |
authorizationCode | String | 验证数据 |
identityToken | String | Web令牌(JWT) |
realUserStatus | Number | 标识用户是否为真实的人 0:当前平台不支持,忽略该值;1:无法确认;2:用户真实性非常高 |
scope | String | 返回信息作用域 |
2、fullName
属性 | 类型 | 说明 |
---|---|---|
namePrefix | String | 名字前缀,头衔、敬称 |
givenName | String | 名字 |
middleName | String | 中间名 |
familyName | String | 姓 |
nameSuffix | String | 名字后缀,学位、荣誉 |
nickName | String | 昵称 |
我们Java代码级别的处理,局限于identityToken 进行校验即可。identityToken 处理的结果如下:
字段名 | 说明 |
---|---|
iss | 签发机构网址 |
aud | bundle id |
exp | int 过期时间戳 |
iat | 签发时间 |
sub | user id |
nouce | 客户端发出请求时携带的随机串,用于对照 |
c_hash | 一段哈希 |
email_verified | email 是否确认了 |
is_private_email | 是否为 private email |
auth_time | email 授权时间 |
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤