我正在构建一个包含3个服务器的应用程序。第一个是我的Authorization server
,第二个是我的Database server(API)
,最后是我的front-end server
。我想使用非对称加密来对我的Authorization server
生成的访问令牌进行加密,以便不泄露敏感数据,并且也可以将其发送到我的API
并验证用户是否在发出请求实际上就是他们声称的身份。 Laravel Passport中是否有任何东西可以使这种实现成为可能,还是最好使用第三方库,例如PASETO或PHP JWT Framework?
当前,当我向Api请求
Authorization server
以使用访问令牌验证用户。Auth server
验证用户我希望通过非对称加密实现的是在对API的每次请求之前消除对Auth server
的调用,并且我读到可以使用非对称加密来实现这一目标。
答案 0 :(得分:0)
为解决我的问题,我最终使用JWCrypto库对访问令牌中的数据进行加密。 JWE声明中对数据进行了加密。
//Decrypting JWE
//Private key should be key pair of public key used to encrypt token
jwetoken.deserialize(jwe_encrypted, key=private_key)
//Validating Signature since passport signs tokens when generating them
jwstoken.verify(auth_public_key)
//Payload should contain encrypted data
data = json.loads(jwstoken.payload.decode())
>> {"sub": "1234567890", "name": "John Doe", "iat": 1516239022}
我后来使用python库Authlib JOSE Guide对令牌进行解密。我正在考虑切换到{{3}},因为它似乎拥有更广泛的社区和支持。
{{1}}