使用express,socket.io和使用jwt
的基于令牌的身份验证设置测试服务器看过这个教程 https://auth0.com/blog/2014/01/15/auth-with-socket-io/
在服务器端,教程记录解码的令牌
console.log(socket.handshake.decoded_token.email, 'connected');
但是当我尝试记录socket.handshake.decoded_token
时,变量未定义。socket.handshake
不包含带解码标记的任何变量
所以..我试图谷歌如何解码令牌并找到这个页面 https://developers.google.com/wallet/digital/docs/jwtdecoder
我粘贴了公共令牌,脚本在没有jwtSecret的情况下解码了令牌!?嗯...然后我在思考..如果脚本可以在没有秘密的情况下解码令牌,那么它是如何安全的??
作为身份验证返回给客户端的公共令牌
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwibmFtZSI6ImNsYXJrIiwiZW1haWwiOiJjbGFya0BlbGVjdHJvYmVhdC5kayIsImlhdCI6MTQwMzczMTkyMSwiZXhwIjoxNDAzNzM1NTIxfQ.mVFymk6gKBPmcVObB_3ydqbJTlcv4eVNYBcahsjg0g8
答案 0 :(得分:1)
答案 1 :(得分:0)
关于天气,你信任令牌的发行者,以提供自己的令牌。任何人都可以解码它,任何人都可以编码完全相同的json有效负载,但只有你可以根据你的密钥来决定天气签名是否得到验证。
因此,如果你在某个地方放弃你的jwt秘密的潜在违规情况,你应该能够改变秘密,并基本上使所有已发行的令牌无效。