3 个版本

0.1.2 2021 年 3 月 22 日
0.1.1 2020 年 3 月 13 日
0.1.0 2020 年 3 月 13 日

#657 in 身份验证

MIT 许可证

8KB
98

使用 Apple 登录 JSON Web Token 验证库

当在 iOS/iPadOS/macOS 设备上使用使用 Apple 登录时,客户端会接收到一个用于发送到验证服务器进行验证的身份令牌和用户令牌。身份令牌是以 base64 编码、签名的 JSON Web Token (JWT) 的形式。

此库可以在服务器端用于验证 Apple 服务器的身份令牌。身份令牌通常只有效大约 5 分钟。

为了测试,保存一个超过 5 分钟的身份令牌并在除过期时间外进行验证可能很有价值。在调用验证器时提供了一个标志用于此目的。

Apple 还提供了一种机制,允许服务器定期(但不超过每天一次)重新验证用户。此库的将来版本将添加此功能。


lib.rs:

Apple 登录的后端

提供对 Apple 文档中 identityToken 验证的验证:[https://docs.rs/siwa/0.1.2/siwa](https://developer.apple.com/documentation/signinwithapplerestapi/verifying_a_user)

为了验证身份令牌,您的应用程序服务器必须

  1. 获取 Apple 的公钥以验证 ID 令牌签名。

    https://appleid.apple.com/auth/keys

  2. 使用服务器的公钥验证 JWS E256 签名

  3. 验证用于认证的 nonce

  4. 验证 iss 字段包含 [https://appleid.apple.com](https://appleid.apple.com)

  5. 验证 aud 字段是开发者的 client_id

  6. 验证时间早于令牌的 exp

依赖项

~15–30MB
~572K SLoC