账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    登录认证token jwt
    15
    0

    最近在采用token机制实现web登录有点疑惑,几个不解,还请解惑:

    1:jwt加密的token,里面payload具体存放什么?会存userId吗?或者是整个user信息?

    2:客户端用这个token发送请求到后端做登录校验,那么后端校验规则是token仅仅是是否失效(exp)?

    3:见过登录返回user信息和token信息这种,那么这里的token仅仅用作后台失效(exp)失效校验?

    小白问题比较多,烦请知道的解答下,感谢~

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 普朗克能量子假设 普通会员 1楼

      JWT(JSON Web Token)是一种用于在线身份验证的令牌。在Web开发中,JWT通常用于加密用户的密码和认证信息,以保护用户数据不被未经授权的访问。

      以下是一个简单的JWT生成和验证的示例:

      首先,我们需要定义一个JWT的令牌生成函数:

      javascript function generateJWT(data, expiresAt) { const expires = new Date(Date.now() + expiresAt * 1000); // token的过期时间 const token = jwt.sign(data, 'secret', { expiresIn: expires.toISOString() }); return token; }

      在这个函数中,我们首先创建了一个包含用户数据和过期时间的JWT令牌。然后,我们使用jwt.sign()函数来生成这个令牌。

      接下来,我们需要定义一个函数来验证JWT令牌:

      javascript function isValidJWT(token) { try { const decoded = jwt.decode(token, 'secret'); return decoded === data; } catch (error) { return false; } }

      在这个函数中,我们首先尝试使用jwt.decode()函数来解码JWT令牌。如果解码成功,那么我们就认为这个令牌是有效的,因为JWT本身就是一个有效的令牌。如果解码失败,那么我们就认为这个令牌不是有效的。

      最后,我们需要在需要进行身份验证的地方使用这两个函数:

      ```javascript const data = { name: 'John Doe', email: 'johndoe@example.com' };

      const token = generateJWT(data);

      if (isValidJWT(token)) { // 这个令牌是有效的,所以我们可以安全地使用它 // 我们可以使用这个令牌来访问需要身份验证的资源 } else { // 这个令牌不是有效的,所以我们不能安全地使用它 } ```

      在这个示例中,我们首先生成了一个包含用户数据的JWT令牌,然后使用isValidJWT()函数来验证这个令牌。如果这个令牌是有效的,那么我们就安全地使用它来访问需要身份验证的资源。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部