async onSubmit(e) {
e.preventDefault();
axios.post('http://127.0.0.1:8000/auth/token/login',{
email:this.state.email,
password:this.state.password,
}).then(res => {
localStorage.setItem('token', JSON.stringify(res.data));
this.props.history.push('/protcted')
});
console.log("resgister!");
// console.log(resd.json());
}
asyn c componentDidMount () {
if (!this.state.logged_in) {
this.props.history.push('./login')
}
console.log(user));
if (this.state.logged_in) {
fetch('http://localhost:8000/auth/users/me', {
method: 'GET',
headers: {
"Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type,
Accept, Authorization",
"Access-Control-Allow-Methods": "*",
"Authorization": `Token ${localStorage.getItem('token')}`,
"Content-Type": 'application/x-www-form-urlencoded',
"withCredentials": true,
"Access-Control-Allow-Origin":"*",
'X-Requested-With': 'XMLHttpRequest'
}
})
.then(res => JSON.stringify(res.data))
.then(json => {
this.setState({ username: json.username });
});
}
}
settings.py
INSTALLED_APPS = [
'authapp',
'rest_framework',
'djoser',
'rest_framework.authtoken',
'corsheaders',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True
введите описание изображения здесь
регистрация завершена, работает этот URL-адрес localhost, но вход в систему не работает. И в этом onSubmit Метод полностью рабочий токен действительно хранится в localStorage, но я пытаюсь аутентифицироваться с помощью этого токена, я получаю эту ошибку.
И сюрприз в том, что я запрашиваю http://localhost: 8000 / auth / users / me этот URL в Postman, затем я получить данные
вы можете увидеть на этой фотографии по данной ссылке
введите описание изображения здесь