Python后端实现苹果ID登陆

本文介绍了使用Python处理Apple ID登录时遇到的问题,包括Code和Token的使用。Code每天只能登陆一次,限制了调试。文章详细阐述了TeamID、BundleID、私钥的准备,以及使用requests、pyjwt、cryptography库来处理登录过程。通过解密Token获取用户的唯一标识sub,强调后端验证提高安全性。
摘要由CSDN通过智能技术生成

Python后端实现苹果ID登陆踩的坑


和朋友一起做了个小应用,考虑到方便起见,直接使用了微信登陆,这样也方便了用户。
微信登陆的方式比较简单,前端拉起微信,得到一个code,后端将app_id和app_secret加上这个code一起传到微信服务器,服务器返回一个open_id,access_token和refresh_token,用这个accesss_token就可以得到用户昵称头像等信息。这个open_id可以作为一个用户标识。
准备把应用发布到苹果商店,坑爹的要用苹果登陆。

使用苹果ID在手机应用上登陆会得到两个东西,一个是Code,一个是Token。

在登陆的时候我们想当然的微信类似,用这个code来进行登陆,谁知道掉进了一个大坑。

Code

强烈建议大家不要用这个玩意,每天只能登陆一次,真的很难调试,如果用了这一次机会,就只能等第二天再调试了。

先说一下前期准备,需要TeamID,BundleID, 私钥,然后在平台里面要点上允许登陆。
官方链接:https://developer.apple.com/documentation/sign_in_with_apple/generate_and_validate_tokens

这里app id其实就是bundle id,用的名称不统一,光这个玩意就折腾了大半天。

需要准备的包:requests, pyjwt,cryptography(pyjwt使用ES256加密方式时需要)

直接上代码了:

TEAM_ID = ''
BUNDLE_ID = ''
KEY_FILE = '/home/stamp/app/apple/AuthKey_KDKDKKDKF.p8'
ALG = 'ES256'
KID = 'KDKDKDAFDK'
CODE_URL = 'https://appleid.apple.com/auth/token'
GRAND_TYPE = 'authorization_code'
AUD_URL = 'https://appleid.apple.com'
AUD_WS = 'appleid.apple.com'
VALIDITY_PERIOD = 180
DAY_SECOND = 86400

    header = {
   'alg': ALG, 'kid'
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值