前端发送token到后端,一般有三种方式:

  1. 链接中携带token,query参数
  2. post这种请求body中携带token
  3. 头信息携带token

但是事实上http已经为我们提供了传token的方式,是一个相对来说比较安全的方式,就是HttpBearerAuth

其实他也是一个头信息来着,只是相对来说多了一点操作,在apipost软件中,我们可以直接可视化设置

如果是axios,则是需要添加一个头信息:

javascript
复制代码
axios({ method: 'get', url: url, responseType: 'blob', headers: { 'Authorization': 'Bearer ' + getToken() } }).then(res => { console.log(res) })

Authorization为key,值的话,开头要加上Bearer ,并且带有一个空格,这个空格是必须的。

然后我们koa的api中则需要获取到这个值,一般来说,自己写个方法就行了:

paresBearerToken.js:

javascript
复制代码
//获取头信息中authorization的token module.exports = function paresBearerToken(header) { if (header && header.authorization) { const authorization = header.authorization.split(" "); if (authorization.length === 2 && /^Bearer$/i.test(authorization[0])) { return authorization[1]; } else { return null; } }; return null; };

调用的时候:

javascript
复制代码
const parseBearerToken = require("@utils/paresBearerToken"); //获取头信息中的token const token = parseBearerToken(ctx.header);

这样就行了。

分类: Node 标签: nodekoaaxiostokenHttpBearerAuth

评论

全部评论 2

  1. 阿俊
    阿俊
    Google Chrome Windows 10
    大佬你好,可以把你学习这个koa2 封装好的例子给我嘛,谢谢
    1. 木灵鱼儿
      木灵鱼儿
      FireFox Windows 10
      @阿俊没有了,koa学起来很迷茫的,建议转战nest框架

目录