angular2의 간단한 기본 인증 서비스입니다.
사용자가 처음 로그인하면 작동합니다. 그러나 다른 계정으로 두 번째 로그인을 시도 할 때. 요청 헤더에 이중 기본 인증 문자열이 있습니다. "Authorization : Basic YWRtaW46YWJjMTIz, Basic RMcasd9WJjMXoPj"와 같습니다.
이것은 서비스입니다 :
@Injectable()
export class AuthenticationService {
private url: string = 'http://localhost:8080/api/test';
private username: string;
private password: string;
private authenticationStatus: boolean = false;
constructor(private http: Http) { }
authentication(username: string, password: string): Promise<boolean> {
let headers = new Headers(); // <== previous headers object with old Authorization string get back from grave.
console.log(headers);
headers.append("Authorization", "Basic " + btoa(username + ":" + password));
headers.append("Content-Type","application/json;charset=utf-8");
return this.http.get(this.url, { headers: headers })
.toPromise()
.then(response => { ...
이것은 나의 첫 번째 시도 각도 / 타이프 스크립트 앱입니다. 여기서 let과 new를 모두 사용할 때 새로운 개체를 얻지 못해서 혼란 스럽습니다. 헤더 클래스 내의 headersString이 정적이기 때문입니까? 각도 헤더 클래스 api 문서를 살펴 보았습니다. 나는 , The old Authorization 헤더가 남아있는 headers.delete("Authorization");
직후에 전화를 시도 했습니다 let headers = new Headers();
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다