当前位置: 首页 > 知识库问答 >
问题:

回调时缺少Axios标头授权承载

李烨烁
2023-03-14

我目前正在客户端应用程序上使用JavaScriptAxios。我用另一个axios请求回调(userauth();)运行一个axios请求(refreshToken();),在第一个axios请求的响应中,我收到一个新的令牌。我尝试在回调的headersauthorization载体中设置这个新内标识。这不起作用:在回调(userauth();)时,没有设置新的令牌,并且在头中没有设置更多的授权承载。

let now = new Date();
let time = now.getTime();
time += 3600 * 1000;
now.setTime(time);

const setTokenOnCookie = (token) => {
    document.cookie = 'token=' + token + '; expires=' + now.toUTCString();
}

const setRefreshOnCookie = (refresh_token) => {
    document.cookie = 'refresh_token=' + refresh_token;
}

const TOKEN_USER = document.cookie.replace(/(?:(?:^|.*;\s*)token\s*\=\s*([^;]*).*$)|^.*$/, "$1");
const REFRESH_TOKEN = document.cookie.replace(/(?:(?:^|.*;\s*)refresh_token\s*\=\s*([^;]*).*$)|^.*$/, "$1");

const refreshToken = (userAuthCallback, userUnauthCallback) => {
    axios.post(`${API_URL}/my/url/to/refresh/token`,
        'refresh_token='+REFRESH_TOKEN,
        {headers:{'Content-Type': 'application/x-www-form-urlencoded'}}
    ).then(res => {
        Promise.all([setTokenOnCookie(res.data.token), setRefreshOnCookie(res.data.refresh_token)])
    .then(()=>{
         userAuthCallback(res.data.token);
     }).catch(err => {
         userUnauthCallback();
     })
}

const userAuth = (token) => {
    if(!token){
        token = TOKEN_USER
    }
    axios.get(`${API_URL}/my/url/to/get/my/user`,
        {headers:{'Authorization': `Bearer ${token}`}}
    ).then(res => {
        pushToApplicationPath();
    }).catch(err => {
        catchMyError();
    })
}

const userUnauth = () => {
    document.cookie = 'token=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    document.cookie = 'refresh_token=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    document.cookie = 'username=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    pushToLoginPath();
}

refreshToken(userAuth, userUnauth);

你知道问题出在哪里吗?

共有1个答案

尉迟彬
2023-03-14

我已经在GitHub上找到了开放的问题。

GitHub第891期

 类似资料:
  • 我正在尝试使用JWT身份验证设置一个简单的Angularjs应用程序。 我给新注册的用户发了一封带有jwt令牌链接的邮件,以验证该邮件是否存在。链接如下所示: < code > http://127 . 0 . 0 . 1:3000/verify email/eyj 0 exaioijkv 1 qilchbgcioijiuzi 1 nij 9 . eyj 1c 2 vytmftzsi 6 injp

  • 问题内容: 我一直在尝试使用axios向National Park Service API发出GET请求,并尝试了几种方法将请求标头中的API密钥设置为无效。任何帮助将不胜感激。 我努力了: 和 都返回401。当我在Postman中发送GET请求时工作,我在密钥字段中输入Authorization,在值字段中输入我的API密钥。 谢谢。 问题答案: 此问题是由浏览器中的CORS OPTIONS请求

  • 问题内容: 我有一个react / redux应用程序,可从api服务器获取令牌。用户验证后,我想使所有axios请求都将该令牌作为Authorization标头,而不必手动将其附加到操作中的每个请求。我对React / Redux相当陌生,并且不确定采用最佳方法,也没有在Google上找到任何高质量的点击。 这是我的redux设置: 我的令牌存储在的redux存储中。 我对如何进行有点迷茫。我试

  • 授权回调 地址URL [平台方创建应用时提供的订单状态回调地址] 支持格式 JSON HTTP请求方式 POST 访问授权限制 暂无 请求参数 名称 类型 必选 描述 type int yes 回调类型:1授权,0取消授权 company_id string yes 待授权公司在滴滴的id out_company_id string yes 待授权公司在平台的id out_company_name

  • 我只是在试着学OAuth。我写了一些代码来测试它。当我提交请求时,我得到{“error”:“invalid_request”,“error_description”:“missing grant type”} 邮递员的错误。 这是我寄给邮递员的东西:

  • 我想向我的节点添加文档。js API,为此,我有一个YAML文件,我把我的定义放在那里,swagger文档位于localhost:5000/API doc,运行良好。 现在,我必须用以下定义添加Bear authorization but Swagger: 在测试请求时(我点击右上角的“授权”按钮并输入我的令牌),我得到以下错误: “错误”:“未找到授权标头”。 为什么请求中不包括标题?