iOS开发 - 基于Token的身份验证-JWT

如题所述

第1个回答  2022-07-02
JWT就是一个字符串,经过加密处理与校验处理的字符串,形式为: A.B.C

header格式为

它就是一个json串,两个字段是必须的,不能多也不能少。alg字段指定了生成C的算法,默认值是HS256
将header用Base64Url编码,得到A
通常,JWT库中,可以把A部分固定写死,用户最多指定一个alg的取值

将上面的JSON对象进行Base64Url编码,得到B

将A.B使用RS256加密(其实是用header中指定的算法),当然加密过程中还需要密钥(自行指定的一个字符串)。
加密得到C,学名signature,其实就是一个字符串。作用类似于CRC校验,保证加密没有问题。
现在A.B.C就是生成的token了。

可以使用
JWT调试

Objective-C JWT https://github.com/yourkarma/JWT

我们使用的是RSA256
文档

生成环境是在mac系统下,使用openssl进行生成,首先打开终端,按下面这些步骤依次来做:打开openssl

1.生成模长为1024bit的私钥文件 private_key.pem

注意:这一步会提示输入国家、省份、mail等信息,可以根据实际情况填写,我测试了不填写的情况,会报错.这里会提示输入密码

注意:这一步会提示给私钥文件设置密码,直接输入想要设置密码即可,然后敲回车,然后再验证刚才设置的密码,再次输入密码,然后敲回车,完毕!
在解密时,private_key.p12文件需要和这里设置的密码配合使用,因此需要牢记此密码.

把.der和.p12格式的秘钥文件导入工程中,把私钥和秘钥发给后台,使用一套私钥秘钥,就完成了JWT token的生成!
相似回答
大家正在搜