栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Apple登录的invalid_client

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Apple登录的invalid_client

这行引起了我的注意:

map.add("pre", authorizationCode);  // JWT pre we got from iOS

authorizationCode
不是
jwt

JSON Web令牌包含3个由点分隔的部分

但是

authorizationCode
有4个部分,例如:

text1.text2.0.text3

您可能正在使用

identityToken
iOS应用中的,而不是
authorizationCode

这是您如何检索它:

let authorizationCode = String(data: appleIDCredential.authorizationCode!, encoding: .utf8)!print("authorizationCode: (authorizationCode)")

对于遇到相同

invalid_client
错误后可能会来到这里的人,也要谨记以下几点:

  1. kid是来自developer.apple.com/account/resources/authkeys/list的私钥的ID。

  2. keyFile是保存从developer.apple.com下载的私钥的文件

  3. 登录到developer.apple.com并单击帐户即可找到teamID,可以在右上角看到teamID

  4. aud的值应为https://appleid.apple.com

  5. app_id是应用程序的捆绑包标识符

如果有帮助的话,下面是在python中创建一个client_secret的可行解决方案:

# $ pip install pyjwtimport jwtimport timekid = "myKeyId"  keyFile = "/pathToFile/AuthKey.p8"key = ""with open(keyFile, 'r') as myFile:    key = myFile.read()print(key)timeNow = int(round(time.time()))time3Months = timeNow + 86400*90claims = {    'iss': teamID,    'iat': timeNow,    'exp': time3Months,    'aud': 'https://appleid.apple.com',    'sub': app_id,}secret = jwt.enpre(claims, key, algorithm='ES256', headers={'kid': kid})print("secret:")print(secret)client_secret = secret.depre("utf-8")print(client_secret)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/443255.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号