第一次使用 axios 登录时如何设置令牌?
how to setup token for the first time login with axios?
在我的 React 应用程序中我有
axios.defaults.headers.common["Authorization"] = `Token ${localStorage.getItem("token")}\`;
随每个请求发送令牌。
现在,我正在尝试使用 djoser 包首次登录 Django 休息服务器,但我收到此 401 响应:{"detail":"Invalid token."}
我猜是因为还没有令牌。
设置:
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 1000,
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
}
我应该做前端还是后端,什么?
正如文档指出的那样登录,您应该到达端点 /auth/token/login/
并提供 username
& password
以检索新令牌。
关于 Authorization
你可以这样做:
const token = localStorage.getItem("token")
axios.defaults.headers.common["Authorization"] = token ? `Token ${token}` : null
或使用拦截器:
axios.interceptors.request.use(function (config) {
const token = localStorage.getItem("token")
config.headers.Authorization = token ? `Token ${token}` : null
return config;
});
在我的 React 应用程序中我有
axios.defaults.headers.common["Authorization"] = `Token ${localStorage.getItem("token")}\`;
随每个请求发送令牌。
现在,我正在尝试使用 djoser 包首次登录 Django 休息服务器,但我收到此 401 响应:{"detail":"Invalid token."}
我猜是因为还没有令牌。
设置:
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 1000,
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
}
我应该做前端还是后端,什么?
正如文档指出的那样登录,您应该到达端点 /auth/token/login/
并提供 username
& password
以检索新令牌。
关于 Authorization
你可以这样做:
const token = localStorage.getItem("token")
axios.defaults.headers.common["Authorization"] = token ? `Token ${token}` : null
或使用拦截器:
axios.interceptors.request.use(function (config) {
const token = localStorage.getItem("token")
config.headers.Authorization = token ? `Token ${token}` : null
return config;
});