首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用atob解码前端的JWT令牌会使我在“窗口”错误上执行“atob”错误。

用atob解码前端的JWT令牌会使我在“窗口”错误上执行“atob”错误。
EN

Stack Overflow用户
提问于 2022-07-05 09:12:38
回答 1查看 318关注 0票数 0

在前端,我正在检查我的JWT是否过期。

职能是:

代码语言:javascript
复制
tokenExpired(token: string) {
    const expiry = JSON.parse(window.atob(token.split('.')[1])).exp;
    return Math.floor(new Date().getTime() / 1000) >= expiry;
  }

然后使用这个函数,比如:

代码语言:javascript
复制
 if (!this.tokenExpired(this.jwtToken || '')) {
      this.getAccountData().subscribe(
        (data) => {
          this.accout = data;
          this.isLoggedIn();
        },
        (err) => {
          this.isLoggedIn$.next(2);
        }
      );
    } else {
      this.isLoggedIn$.next(2);
    }

当我构建我的应用程序时,它在console.log中给出了一个错误:未能在‘Window’上执行'atob‘:要解码的字符串没有正确编码。

有哪些替代atob或window.atob的替代品?

谢谢!

求解->解决方案:

代码语言:javascript
复制
 tokenExpired(token: string) {
    if (token !== '') {
      const expiry = JSON.parse(atob(token.split('.')[1])).exp;
      return Math.floor(new Date().getTime() / 1000) >= expiry;
    } else {
      return false;
    }
  }

这个解决方案是一个好的做法吗?它不会给我一个错误

EN

回答 1

Stack Overflow用户

发布于 2022-07-05 09:27:19

而不是

代码语言:javascript
复制
const expiry = JSON.parse(window.atob(token.split('.')[1])).exp;

使用

代码语言:javascript
复制
const expiry = JSON.parse(atob(token.split('.')[1])).exp;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72866826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档