解码jwt令牌 – 是否安全?
使用express,socket.io和基于令牌的authentication来build立testing服务器
看了这个教程https://auth0.com/blog/2014/01/15/auth-with-socket-io/
在服务器端,教程logging解码的令牌
console.log(socket.handshake.decoded_token.email, 'connected');
但是,当我尝试loginsocket.handshake.decoded_token
variables是未定义的socket.handshake
不包含任何variables与解码令牌
所以..我试图谷歌如何解码令牌,发现这个页面https://developers.google.com/wallet/digital/docs/jwtdecoder
我粘贴公共令牌和脚本解码令牌没有jwtSecret!? 嗯…然后我在想..如果脚本可以解密令牌而没有秘密,怎么可能安全呢?
作为authentication返回给客户端的公共令牌
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MSwibmFtZSI6ImNsYXJrIiwiZW1haWwiOiJjbGFya0BlbGVjdHJvYmVhdC5kayIsImlhdCI6MTQwMzczMTkyMSwiZXhwIjoxNDAzNzM1NTIxfQ.mVFymk6gKBPmcVObB_3ydqbJTlcv4eVNYBcahsjg0g8
令牌不encryption,只是编码。
用你的秘密build立的签名是重要的一点,并确保令牌没有被篡改。
这是一个体面的(和简短的) 写法,更详细地解释了这一点
这是关于天气,你相信令牌发行人提供索赔是由自己的标记举行。 任何人都可以解码,任何人都可以编码完全相同的JSON有效载荷,但只有你可以根据你的秘密密钥来决定天气签名是否得到validation。
因此,在某个潜在的违规情况下,您可以在某个地方放弃您的jwt秘密,您应该可以更改秘密,并基本上使所有已发布的令牌无效。
- validation节点PEM_read_bio_PUBKEY上的RS256 jwt失败
- 节点快递护照(JWT) – auth后callback
- 如何向客户端发送Facebooklogin后创build的JSON Web Token?
- 如何使用JWT使用NodeJS客户端库访问Google Directory(Admin SDK)?
- NodeJS – Socket.io只允许JWTvalidation的连接
- Websocket握手,JWT了解安全
- Auth0 – 用户信息丰富数据
- MEAN Stack – 仅在某些REST方法上使用带有express-restify-mongoose的jwt
- Firebase:如何以编程方式为类似于`firebase.auth()。currentUser.getIdToken(false)`的特定用户生成一个jwt标记?