小编byt*_*ris的帖子

如何验证 Apple 登录的 Jwt 令牌(后端验证)。如何在 Java 中从模数和指数 (n,e) 生成 RSA 公钥

我正在寻找一种方法来验证苹果的登录令牌。
验证必须在后端完成,因此我确信我可以安全地添加新帐户。

另一个问题是我需要将 xml 格式的密钥https://appleid.apple.com/auth/keys转换为公钥 pem 格式。
我找到了一个可能的解决方案,我将在下面发布。代码是用Java实现的

public static void main(String...args) throws Exception {
        String jwtAppleToken = ""; //copy here the token from apple

        //copied from https://appleid.apple.com/auth/keys
        final String base64UrlEncodedModulus = "lxrwmuYSAsTfn-lUu4goZSXBD9ackM9OJuwUVQHmbZo6GW4Fu_auUdN5zI7Y1dEDfgt7m7QXWbHuMD01HLnD4eRtY-RNwCWdjNfEaY_esUPY3OVMrNDI15Ns13xspWS3q-13kdGv9jHI28P87RvMpjz_JCpQ5IM44oSyRnYtVJO-320SB8E2Bw92pmrenbp67KRUzTEVfGU4-obP5RZ09OxvCr1io4KJvEOjDJuuoClF66AT72WymtoMdwzUmhINjR0XSqK6H0MdWsjw7ysyd_JhmqX5CAaT9Pgi0J8lU_pcl215oANqjy7Ob-VMhug9eGyxAWVfu_1u6QJKePlE-w"; 
        final String base64UrlEncodedExp = "AQAB";

        String publicKey = getPemPublicKeyFromBase64UrlEncodedXMLRSAKey(base64UrlEncodedModulus, base64UrlEncodedExp);

        System.out.println(verify(jwtAppleToken, publicKey));

        System.out.println("-----BEGIN PUBLIC KEY-----");
        System.out.println(publicKey);
        System.out.println("-----END PUBLIC KEY-----");

    }
Run Code Online (Sandbox Code Playgroud)

authentication spring rsa jwt apple-id

6
推荐指数
2
解决办法
5012
查看次数

标签 统计

apple-id ×1

authentication ×1

jwt ×1

rsa ×1

spring ×1