Ionic 2 - 如何使用刷新令牌获取新的JWT

时间:2017-06-01 20:07:05

标签: javascript typescript ionic2 jwt json-web-token

我有一个离子2移动应用程序,它使用Json Web Tokens(JWT)对node.js API上的各种路由进行身份验证。这些JWT的到期时间很短,需要使用刷新令牌进行刷新。刷新令牌只是一个随机字符串,存储在数据库和移动设备上。请注意:我不使用OAuth。

如何重构我的API调用,以便它们都通过一个方法,如果初始API调用由于过期的JWT而获得401 Unauthorized响应,则会发送刷新令牌?否则,我将需要编写用于在每个API调用中处理该响应的逻辑,我希望避免这种情况。

这是我在调用API的typescript中实现的一个方法的示例。它目前没有处理401 Unauthorized响应,也没有发送刷新令牌:

 public setBeerPref(beerPrefs) {

    return new Promise((resolve, reject) => {

      this.storage.get('email').then((email) => {

        this.storage.get('token').then((token) => {

          beerPrefs["email"] = email;

          let headers = new Headers();
          headers.append('Authorization', token);
          headers.append('Content-Type', 'application/json');

          let options = new RequestOptions({ headers: headers });

          this.http.post('apiURL', beerPrefs, options)
            .subscribe(res => {
              let data = res.json();

              resolve(data);
              resolve(res.json());
            }, (err) => {
              reject(err);
            });

        });

      });

     });
}

0 个答案:

没有答案