Я работаю над личным проектом и, конечно же, в части аутентификации, теперь я включил CORS ORIGIN WHITE TO ONE SPECIFI C порт, который я использую для angular. однако, когда я включаю использование withCredentials в заголовках, в консоли не устанавливается раздел «cookie» для того, чтобы пользователь поддерживал состояние входа в систему, когда я обновляю sh, я даже использовал перехватчики, но все равно получаю эту ошибку без установки cookie.
это ошибка: заблокирована политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: значение заголовка 'Access-Control-Allow-Credentials' в ответе равно '', который должен быть 'true', мой код пока следующий:
export class AuthService {
signedin$ = new BehaviorSubject(false);
httpHeaders = new HttpHeaders({
'Content-Type': 'application/json',
observe: 'response' as 'response'
//Authorization: 'Token 9e16a8fba7d0fe6e70a0b417d70660c3eb487be0'
});
baseurl = "http://localhost:8000/";
constructor(private http: HttpClient) { }
usernameAvailable(username: string){
return this.http.post<usernameResponse>(this.baseurl + 'users/', {headers:this.httpHeaders, username:username})
}
signUp(credentials:signupcredentials){
return this.http.post<signupresponse>(this.baseurl + 'users/', credentials,
{headers:this.httpHeaders}).pipe(
tap( ()=>{
this.signedin$.next(true);
})
);
}
checkAuth(){
return this.http.get('http://localhost:8000/users/',
{headers: this.httpHeaders}).pipe(
tap( response=>{
console.log(response)
})
);
}
}
мой перехватчик также выглядит следующим образом:
import {Injectable} from '@angular/core';
import {Observable} from 'rxjs';
import { HttpEvent, HttpHandler, HttpRequest, HttpInterceptor} from '@angular/common/http';
@Injectable()
export class AuthHttpInterceptors implements HttpInterceptor {
intercept(req: HttpRequest<any>, next:HttpHandler): Observable<HttpEvent<any>>{
console.log("new outgoing request",req);
const modifiedReq = req.clone({
withCredentials:true
});
console.log("new outgoing new request",req);
return next.handle(modifiedReq)
}
}