在vue.js中携带token,中间件auth.js获取不到token值

来源:8-7 在小程序中携带令牌

梁凤波

2019-06-16

七月老师您好,我在使用vue.js使用 axios携带token令牌时出现了一个问题:在中间件auth.js获取不到,我写的携带令牌代码是:

import {Base64} from 'js-base64'
// ...
config.headers.common['Authorization'] = 'Bearer ' + _encode();
// ...
// 转码token
function _encode() {
  const token = Vue.ls.get("token");
  const base64 = Base64.encode(token + ':');
  return 'Basic ' + base64
}

这些携带token令牌我在浏览器和debug输出都是看到token的:

图片描述

图片描述

但是在 auth.js 中间件里就是取不到该token:

class Auth {
    constructor(level) {
        this.level = level || 1;

        Auth.USER = 8;
        Auth.ADMIN = 16;
        Auth.SPUSER_ADMIN = 32;
    }

    get m() {
        // token 检测
        // token 开发者 传递令牌
        // token body header
        // HTTP 规定 身份验证机制 HttpBasicAuth
        return async (ctx, next) => {
            const tokenToken = basicAuth(ctx.req);
            // 这里是undefined

我调试了很久,我对头部怀疑是headers和header的问题,我搜了一下axios传递头参数的确是headers,想请教一下老师问题的原因?谢谢!

写回答

2回答

7七月

2019-06-17

bearer ?httpbasicauth不能加这个呀。

0
1
梁凤波
太感谢七月老师了,我试了一下,正确。周末学习完老师的课程,把老师所教的知识运用到之前的koa博客项目里,且部署好了,前端网址 www.boblog.com,GitHub项目地址:https://github.com/liangfengbo/nodejs-koa-blog,欢迎七月老师点评。
2019-06-17
共1条回复

negrochn

2019-06-29

Bearer和Basic不能一起使用的,只要选其一就行,就如postman中你选了Basic Auth就不能选Bearer Token的方式了

0
1
梁凤波
谢谢:)
2019-07-02
共1条回复

Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

理解异步编程本质/培养面向对象思维,独立完成Node.js服务端开发

2223 学习 · 878 问题

查看课程