登录Apple
siwa的Python项目详细描述
登录Apple
一个库,便于在服务器端验证登录与苹果(SIWA) 身份标识。在
这个图书馆的重点很窄。它解决了 使用SIWA的潜在方式。它不试图解决 基于网络的SIWA flow。它抽象了RSA256、JSON Web令牌和其他 SIWA使用的机器,并试图为 应用程序开发。在
这个库解决的问题
假设您有一个macOS或iOS应用程序。你展示了SIWA界面
(“使用Apple登录”按钮)发送给使用
^{
假设您的系统由一个平台无关的应用程序控制 编程接口(API)。您希望创建新的用户帐户,或 通过API登录现有用户。你的应用向你的 API要求它基于 包含客户端凭据的数据。在
你怎么知道数据是由AuthenticationServices
提供的,而不是
只是在一个文本编辑器里拼凑在一起?也就是说,你怎么知道
数据在服务器端是authentic?在
苹果通过提供blob简化了凭证的认证 属性中的数据。这个 标识令牌包含一个JSON Web令牌(“JWT”),它是 带着证件。在
凭证的验证可以通过非对称加密来实现,使用 RSA256算法。苹果保留一个秘密加密密钥,并发布一个 相关公钥。苹果使用两个 输入:它们的私钥和客户端凭据的内容。在
外部机构,比如你的API可以验证签名的真实性, 以及相关联的凭据,使用由发布的公钥 苹果。在
此库针对上述功能执行以下功能 流程:
- 检索苹果的公钥
- 解析标识符号(
ASAuthorizationAppleIDCredential.identityToken
) - 提供断言凭据有效或无效的布尔标志
- 提供对身份令牌内容的方便访问(例如 用户电子邮件地址)
安装
通过PyPi与Apple安装登录:
pip install siwa
依赖关系
这个图书馆严重依赖
^{PyJWT
组成。在
将Apple公钥RSA密钥编组为PKS12格式是由
^{
使用
^{pr2}$测试
要测试库,请创建一个包含有效SIWA标识令牌的文件。
例如,从中的AuthenticationServices
获得的
Xcode。在
运行test.py
,在
--example-jwt-file
参数:
python3 test.py --example-jwt-file example/jwt/file
联系人
@hugh_jeremy在Twitter或电子邮件上 hugh@blinkybeach.com
- 项目
标签: