【PHP】单点登录(SingleSignOn,SSO)的思路

小破孩
2022-06-23 / 0 评论 / 149 阅读 / 正在检测是否收录...
用到的工具:JWP类, RSA非对称加密类
composer require firebase/php-jwt;

JWT包含三部分数据:

  • Header:头部,通常头部有两部分信息:
    1.token类型:JWT
    2.加密方式:base64(HS256)
  • Payload:载荷,就是有效数据,一般包含下面信息:
    1.用户身份信息(注意,这里因为采用base64编码,可解码,因此不要存放敏感信息)
    2.注册声明:如token的签发时间,过期时间,签发人等
    这部分也会采用base64编码,得到第二部分数据
  • Signature:签名,是整个数据的认证信息。根据前两步的数据,再加上指定的密钥(secret)(不要泄漏,最好周期性更换),通过base64编码生成。用于验证整个数据完整和可靠性

RSA非对称加密:

  • 需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
  • 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;
  • 如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
  • 因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
将私钥private_key.pem用在服务器端,公钥发放给android跟ios等前端

就是将非对称加密的信息传递到JWT里面的做解密验证

0

评论

博主关闭了所有页面的评论