获取令牌后重定向到起始页面

时间:2018-07-06 02:44:33

标签: angular login

当我加载Angular页面时,它应该去一个站点,获取令牌并重定向到同一页面。我该如何实现?

我想到了在ngOnInit()中调用window.location.href = get-token-site.com/token?state=link-to-my-site.com

但是,这将造成无限循环并往返。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以使用常规表达式检查网址是否具有令牌

例如:

const url = window.location.href;
const haveNoToken = /^https?:\/\/stackoverflow.com\/?$/.test(url);
if (haveNoToken) {
    window.location.href = get-token-site.com/token?state=link-to-my-site.com;
}

所以您可以避免无限循环

答案 1 :(得分:0)

重新编辑到另一个站点:

将此声明保留在您的角度页面中:

HTML:

<button (click)="getTokenFromAnotherSite()">Get Token</buttom>

TS:

getTokenFromAnotherSite(){
 window.location.href = `path to another site from where you want to get token?returnPath ='return_page_path'`;
}

在另一个站点上component.ts:

/**
   * Method initializes first.
   */
  ngOnInit() {
    this.route.queryParams.subscribe(resp => {
      this.returnUrl= resp.returnPath ;

    });

  if(gotToken){
    window.location.href = `you_host/${this.returnUrl}?token=gotToken`;
    }
  }

在同一角度页面中接收令牌:

/**
   * Method initializes first.
   */
  ngOnInit() {
    this.route.queryParams.subscribe(resp => {
      this.token = resp.token;
    });
  }