登录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可以验证签名的真实性, 以及相关联的凭据,使用由发布的公钥 苹果。在

此库针对上述功能执行以下功能 流程:

  1. 检索苹果的公钥
  2. 解析标识符号(ASAuthorizationAppleIDCredential.identityToken
  3. 提供断言凭据有效或无效的布尔标志
  4. 提供对身份令牌内容的方便访问(例如 用户电子邮件地址)

安装

通过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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓中通过TCP发送时java文件损坏   Java测试预期=异常失败,断言错误   java ssh4 LazyInitializationException   java是否可以在集合中添加重复项?   java是一个免费的开源数据库管理工具   java是否可以在导出的html中嵌入图像   编译器构造解释一些东西,并用Java运行生成的字节码?   java KeyPairGenerator未生成随机密钥   java使用正则表达式生成字符串而不是匹配字符串   java中的多线程线程间通信   具有复合密钥的java Hibernate合并问题   java不能在MainActivity类之外使用SharedReferences变量   正在获取切割/零件异常消息。使用java Spring ControllerAdvice   java tomcat漏洞讨论   javascript在Java中实现“system”命令   java如何在JUnit5*中加载*Spring测试上下文之前获取回调?   java bluej关于缺少返回语句   JavaSpringBoot@ModelAttribute包含使用字符串键的其他模型   从可选中抛出异常。ifPresent()Java 8