重定向loggedout用户以angular2登录
当用户注销某个url时,我想将其重定向到登录页面,该url只能由登录用户访问。我必须为我的整个网站这样做。我在stackoverflow上找到了一些答案,但是我很困惑,如果我必须在代码中实现重定向,这样整个网站才能重定向到登录页面。我正在使用angular2。我是打字新手。你能引导我到一些页面或链接,在那里我可以看到我必须写代码重定向为一个单页应用程序。请提供帮助。在注销事件完成后,是否只需路由器链接到登录路由重定向loggedout用户以angular2登录,angular,redirect,Angular,Redirect,当用户注销某个url时,我想将其重定向到登录页面,该url只能由登录用户访问。我必须为我的整个网站这样做。我在stackoverflow上找到了一些答案,但是我很困惑,如果我必须在代码中实现重定向,这样整个网站才能重定向到登录页面。我正在使用angular2。我是打字新手。你能引导我到一些页面或链接,在那里我可以看到我必须写代码重定向为一个单页应用程序。请提供帮助。在注销事件完成后,是否只需路由器链接到登录路由 import { Router } from '@angular/route
import { Router } from '@angular/route';
constructor(private router: Router) {}
onLogout() {
//some logout logics
this.router.navigate(['/login']);
}
如果您将路由路径设置为登录为
{path: 'login', Component: LoginComponent }
您需要为此实现AuthGuard,并在路由中使用canActive
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
@Injectable()
export class AuthGuardService implements CanActivate {
constructor(private auth: AuthService, private router: Router) {
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
if (loggedIn) { // however you want to check if user is loggedin or not
return true;
}
this.router.navigate(['/login'], {queryParams: {'back': state.url}});
return false;
}
}
然后在路线上使用
{
path: '',
component: HomeComponent,
canActivate: [AuthGuardService]
}
我投票以离题的方式结束这个问题,因为要求我们推荐或查找书籍、工具、软件库、教程或其他离题资源的问题因堆栈溢出而离题,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,到目前为止已经做了些什么来解决它。嘿,如果人们不能在这里向我解释,我要求提供一个链接或教程。有时人们也会给出github链接、博客链接或stackoverflow答案。如果我是一个登录用户,并且我与朋友共享了一个链接,请检查情况。当朋友尝试访问该链接时,该链接不会打开,因为他尚未登录,并且该网页需要登录。然后在这个场景中,我必须通过检查localstorage将用户重定向到登录页面,看他是否登录。我理解这个概念,我不知道如何一次在整个网站上应用它,或者我需要在所有组件中逐个应用它。另外,我对typescript还不熟悉。但为什么有人能够访问一个为登录用户准备的页面而他们没有登录?这是一个验证页面,用户通过上传他的身份证明和其他详细信息来验证自己。在用户下订单验证自己后,我们将向他发送一个验证链接。对于此链接,用户必须登录。因此,如果用户尚未登录,我必须将其重定向到登录屏幕。当我的一个朋友与我共享帖子链接但帖子无法直接打开时,facebook也会出现这种情况。fb会首先将我带到登录页面,然后导航到帖子。