【问题标题】:Unique session using token JWT Angular Auth使用令牌 JWT Angular Auth 的唯一会话
【发布时间】: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(),
      );
    }

【问题讨论】:

    标签: angular jwt


    【解决方案1】:

    你可以试试这个包 Simple JWT (enter link description here)。

    设置中有一个名为 JTI_CLAIM 的字段: 用于存储令牌唯一标识符的声明名称。此标识符用于识别黑名单应用中已撤销的令牌。在某些情况下,可能需要使用默认的“jti”声明之外的另一个声明来存储这样的值。

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 2017-04-06
      • 2022-07-19
      • 2016-08-05
      • 2017-09-27
      • 2020-12-05
      • 2016-10-20
      • 2019-08-08
      • 2019-03-11
      相关资源
      最近更新 更多