首页 > 解决方案 > 将访问令牌刷新并保存到会话存储中

问题描述

当我获取存储在 JSON 文件中的访问令牌时,对于每个时间间隔,大约 5 秒,它需要检索或刷新访问令牌并将其存储在会话变量中

登录组件.ts

ngOnInit() {

     if(! sessionStorage.getItem("token")){
        // this.api.getconfigfile().then((config) => {
        //     //console.log(config);
        //     this.api.getaccesstokenkey();
        // });
        this.api.testing();
        this.api.getaccesstokenkey();
      }
     this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';
}

api.service.ts

constructor( private http : HttpClient ,private router: Router,private route: ActivatedRoute,private alertService: AlertService ) { 
    this.accessToken=JSON.parse(sessionStorage.getItem("token"));  
    this.configjson=JSON.parse(sessionStorage.getItem("config"));
}

testing(){
    const myJWTProperties = {
      iss: "omrxdevappengineforui@still-fact-237402.iam.gserviceaccount.com",
      aud: "https://www.googleapis.com/oauth2/v4/token",
      iat: Math.floor(new Date().getTime() / 1000),
      exp: 3600,
      target_audience: "117661587724577164884",
    }

getconfigfile() : Promise<any>{
    let promise = new Promise((resolve, reject) => {
      let apiURL = "./assets/configfile.json";
      this.http.get(apiURL).toPromise().then(
            res => {
               // Success
               this.configjson = res;
               sessionStorage.setItem("config",JSON.stringify(this.configjson));
               resolve();
            },
            msg => {
              // Error
              reject(msg);
            }
          );
      });

      return promise;
}

getaccesstokenkey(){
    let promise = new Promise((resolve, reject) => {
    let apiURL = "./assets/accesskey.json";
    this.http.get(apiURL).toPromise().then(
        res => {
            // Success
            this.accessTokenKey = res;
            this.getaccesstoken();
            resolve();
        },
        msg => {
            // Error
            reject(msg);
        }
        );
    });

    return promise;
}

我应该如何包含 Window setInterval() 或任何其他内置的角度函数来完成相同的操作?

标签: angularsession-variablessetintervalaccess-token

解决方案


推荐阅读