【发布时间】:2020-02-13 10:30:53
【问题描述】:
我有一个想法来构建一个基本的会话身份验证应用程序并且它可以工作,但我可以在两个不同的浏览器中使用同一个用户登录。
有谁知道如何构建身份验证方法以避免the double login?
我的应用实际上使用 Angular 5 和后端 Django Rest Framework,
这是我的实际方法验证 service.ts:
private apiRoot = 'http://127.0.0.1:8000/auth/';
islogedin: boolean;
constructor(private http: HttpClient) { }
private setSession(authResult) {
const token = authResult.token;
const payload = <JWTPayload> jwtDecode(token);
const expiresAt = moment.unix(payload.exp);
localStorage.setItem('token', authResult.token);
localStorage.setItem('expires_at', JSON.stringify(expiresAt.valueOf()));
}
get token(): string {
return localStorage.getItem('token');
}
login(username: string, password: string) {
return this.http.post(
this.apiRoot.concat('login/'),
{ username, password }
).pipe(
tap(response => this.setSession(response)),
shareReplay(),
);
}
【问题讨论】: