我试图写一个警卫,如果用户没有登录,重定向到外部服务(比如Instagram),
if (!loggedIn) {
this.location.go(this.instagramLoginUri);
}
其中location
是Angular' Location
的实例,而URI是
https://api.instagram.com/oauth/authorize/?client_id=xxxxx&redirect_uri=xxxxx&response_type=token
当这个守卫触发时,Angular会尝试导航到
http://localhost:4200/https://api.instagram.com/oauth/authorize/?client_id=xxxxx&redirect_uri=xxxxx&response_type=token
当然失败了。我尝试使用
window.location.href = 'xxxxx'
同样,结果完全相同,所以我不确定这是否与Angular相关。有什么指针吗?
答案 0 :(得分:1)
请你试试这个:
constructor(@Inject(DOCUMENT) private document: any) { }
if (!loggedIn) {
this.document.location.href = 'http://instagram.com';
}