• PHP服务端如何进行苹果登录的验证


    一、材料准备

    1、P8文件:苹果后台生成证书那里的key那里生成,这个文件只可以下载一次,保存好

    2、生成JWT token 的脚本

    二、脚本siwa.rb

    1. #!/usr/bin/env ruby
    2. require 'jwt'
    3. require 'openssl'
    4. require 'optparse'
    5. options = {}
    6. OptionParser.new do |opts|
    7. opts.banner = "Usage: siwa.rb [options]"
    8. opts.on("-k", "--key PATH", "Path to the AuthKey file") do |v|
    9. options[:key] = v
    10. end
    11. opts.on("-t", "--team-id TEAM_ID", "Your Apple Team ID") do |v|
    12. options[:team_id] = v
    13. end
    14. opts.on("-b", "--bundle-id BUNDLE_ID", "Your App's Bundle ID") do |v|
    15. options[:bundle_id] = v
    16. end
    17. opts.on("-h", "--help", "Prints this help") do
    18. puts opts
    19. exit
    20. end
    21. end.parse!
    22. if options[:key].nil? || options[:team_id].nil? || options[:bundle_id].nil?
    23. puts OptionParser.new.help
    24. exit
    25. end
    26. pem_content = File.read options[:key]
    27. ecdsa_key = OpenSSL::PKey::EC.new pem_content
    28. headers = {
    29. 'kid' => options[:team_id],
    30. }
    31. claims = {
    32. 'iss' => options[:team_id],
    33. 'iat' => Time.now.to_i,
    34. 'exp' => Time.now.to_i + 86400*180,
    35. 'aud' => 'https://appleid.apple.com',
    36. 'sub' => options[:bundle_id],
    37. }
    38. token = JWT.encode claims, ecdsa_key, 'ES256', headers
    39. puts token

    三、运行生成token

    1、把脚本放在桌面,命令行执行:chmod +x /Users/say/Desktop/siwa.rb

    2、cd到桌面,运行:./siwa.rb -h

    如果报错:

    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- jwt (LoadError)

    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'

    from ./siwa.rb:3:in `

    '

    说明电脑上没有JWT

    3、安装JWT:sudo gem install jwt

    4、执行:./siwa.rb -h

    终端会输出:

    Usage: siwa.rb [options]

        -k, --key PATH                   Path to the AuthKey file

        -t, --team-id TEAM_ID            Your Apple Team ID

        -b, --bundle-id BUNDLE_ID        Your App's Bundle ID

        -h, --help                       Prints this help

    5、运行:./siwa.rb -k /Users/5T3.p8 -t 684MCOO9T3 -b com.kcys.sx

    就会生成JWT 字符串

  • 相关阅读:
    数据库更新没有反映在前端页面
    解析java中逻辑运算符、自增(自减)运算符、三目运算符
    C++ 炼气期之基本结构语法中的底层逻辑
    基于JSP实现OA办公系统
    Java教程:只会懒汉式和饿汉式,那你还不算真的懂单例模式
    Vue实现鼠标悬浮隐藏与显示图片效果 @mouseenter 和 @mouseleave事件
    STM32 CAN使用记录:bxCAN基础通讯
    LT6911C是HDMI1.4转双MIPIDSI/CSI带音频
    E. Red-Black Pepper
    算法与数据结构 - 散列表
  • 原文地址:https://blog.csdn.net/qq_37203361/article/details/136331480