使用axios,我尝试为所有请求设置默认标头身份验证令牌。但默认情况下它没有被发现,并且对于任何其他api调用,“授权”没有在标头中设置。
这是一个常用文件
import axios from 'axios';
const axiosClient = axios.create({
headers: {
'Content-type': 'application/json',
'Accept': 'application/json',
}
});
const UseHttp = (requestConfig) => {
return axiosClient({
url: requestConfig.url,
method: requestConfig.method || 'GET',
data: requestConfig.body && JSON.stringify(requestConfig.body)
}).then((response) => {
if (response.status == 200) {
return response.data;
} else {
throw new Error(response.data.message);
}
}).then((data) => {
return data.data;
}).catch((error) => {
return error.message;
});
};
export const setAuthHeader = (header) => {
axiosClient.defaults.headers.common['Authorization'] = header;}
export default UseHttp;
登录后,我像这样设置标题
import {USER} from './Url';
import UseHttp, {setAuthHeader} from './UseHttp';
/* eslint-disable */
export const LoginApi = async (values) => {
const requestOptions = {
user_name: values.username,
password: values.password
}
try {
let res = await UseHttp({ url : USER.login, method:'POST', body: requestOptions});
setAuthHeader(res.token);
return res;
} catch (err) {
return err;
}
}
但是当我调用任何其他API标头进行授权时,CountryApi.js所在的位置没有设置
import UseHttp from './UseHttp';
import {LANDING} from './Url';
export const countryList = () => UseHttp({ url: LANDING.get_country_list });
Country.js是这个
import {countryList} from '../../../api/CountryApi';
useEffect(() => {
countryList().then((res) => {
setallData(res)
});
}, [locale])
这是一个基本的实现,说明了如何使用拦截器在发送请求之前修改请求,并在头部添加令牌(如果它存储在本地存储中的话)。
import Axios from "axios";
const axios = Axios.create({
headers: {
'Content-type': 'application/json',
'Accept': 'application/json',
}
});
axios.interceptors.request.use((config) => {
const token = localStorage.getItem("token");
if (token) {
config.headers!.Authorization = `Bearer ${token}`;
}
return config;
});
我有一个Vue SPA,我使用Axios处理请求,Vue Axios应用它,vuex存储令牌。但当我发送一个请求时,头授权将变成Bearer未定义或Bearer null。 流程是,通过登录,我检索一个令牌,将其保存到会话存储中,分派一个登录操作,我的vuex存储将从会话存储中设置一个处于状态的令牌。在我登录并将路由器重定向到“/”后,我想向/foo发送GET请求以及我的令牌。但这里我的代币没有定
问题内容: 我正在尝试向每个API调用添加带有访问令牌的标头。它适用于所有GET请求,但是一旦我尝试进行POST,便不会添加标头。 这是我添加令牌的方法: 从这里调用: 我尝试这样做如下: 但这也不起作用。它仅在我如下更改标题键名称时才有效: 如何在AngularJs中为帖子分配默认标题并获取请求? 问题答案: 与其将令牌放在每个服务(或调用)内部的标头上,不如使用拦截器(docs在此处)。 然后
直到最近,我在我的Nuxt项目中使用了我自己的注册/登录实现,在成功注册/登录之后,我能够做到这一点$axios。setToken(token,'Bearer'),它将在axios reguests上全局设置授权头。现在我必须重构应用程序并使用Nuxt auth模块。但现在我似乎无法设置此标题。 这是我的身份验证配置: 我以为auth应该自动添加这个授权,因为它默认将设置为,但它没有。所以我试图明
我已经这样配置了我的axios 在我的组件中,我作为 现在,上面的方法可以工作了,但是我想在不影响全局基本URL的情况下更改,这样在我的组件中,我就可以在没有APIendpoint的情况下简单地使用它 我已经试过了 我该怎么办?
设置当前设备(本地缓存) 参数说明 字段 类型 必须? 说明 device RKDevice 是 设备Entity 接口定义 Swift: RokidMobileSDK.device.setCurrentDevice(device: RKDevice) Objc: [RokidMobileSDK.device setCurrentDeviceWithDevice:self.device]; 获
获取默认设备 接口说明 获取当前选择的设备。 示例代码: SDKDevice device = RokidMobileSDK.device.getCurrentDevice(); 设置默认设备 接口说明 更新当前选择设备 参数说明 字段 类型 必须? 说明 device SDKDevice 是 若琪设备实体 示例代码: RokidMobileSDK.device.setCurrentDevice