我有一个想法,可以构建一个基本的会话身份验证应用程序,并且可以运行,但是我可以在两个不同的浏览器中以同一用户身份登录。
有谁知道如何构建auth方法来避免the double login?
我的应用实际上使用的是Angular 5,并且类似于后端Django Rest Framework,
这是我的实际方法auth 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(),
);
}
答案 0 :(得分:0)
您可以尝试使用此包Simple JWT(enter link description here)。
设置中有一个名为 JTI_CLAIM 的字段: 声明名称,用于存储令牌的唯一标识符。该标识符用于识别黑名单应用中的已撤销令牌。在某些情况下,可能有必要使用默认的“ jti”声明以外的其他声明来存储该值。