node:使用egg-jwt实现登录鉴权

1、首先,安装 egg-jwt 插件。可以使用 npm 命令进行安装:

npm install egg-jwt --save

2、在项目的配置文件 config/plugin.js 中启用插件:

module.exports = {
  // ...
  jwt: {
    enable: true,
    package: 'egg-jwt',
  },
};

3、在 config/config.default.js 中进行插件的相关配置:

module.exports = {
  jwt: {
    secret: 'xxx', // 密钥
  }
};

4、在需要使用 JWT 的地方,可以通过 app.jwt 获取 JWT 对象,并签署和验证。例如:

const Controller = require('egg').Controller;

class UserController extends Controller {
  async login() {
    const { ctx, app } = this;

    // 生成 JWT
    const token = app.jwt.sign({
      id: 123,
      username: 'john',
    });

    // 将 JWT 返回给客户端或进行其他操作
    ctx.body = {
      token,
    };
  }

  async getData() {
    const { ctx, app } = this;

    // 从请求头或其它方式获取 JWT
    const token = ctx.request.headers.authorization;

    try {
      // 验证 JWT
      const decoded = app.jwt.verify(token);

      // 使用解码后的数据进行后续操作
      ctx.body = {
        user: decoded,
      };
    } catch (error) {
      // JWT 验证失败
      ctx.body = 'Invalid token';
    }
  }
}

module.exports = UserController;

你可能感兴趣的:(前端,node.js)