尝试使用angular-2创建登录功能,其中我使用了一个登录组件,authservice,logingard with canActive。
在关注angular2文档的示例时,我没有获得保护文件中登录的值,并且每次都要求登录
在此处发布示例代码 AuthService
export class AuthService {
loggedIn: boolean = false;
isLoggedIn() {
return this.loggedIn;
}
login(credentials) {
let user = JSON.stringify(credentials);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this._http.post(this._apiUrl, user, options)
.map(res => res.json())
.map((res) => {
this.loggedIn = true;
}
return res;
});
}}
Loggedin Guard
export class LoggedInGuard implements CanActivate {
constructor(private _auth: AuthService, private _router: Router) {}
canActivate() {
//Get problem here. Everytime this comes false
if(this._auth.isLoggedIn()) { return true; }
this._router.navigate(['login']);
}
}
登录组件
export class LoginComponent {
constructor(private userService: AuthService, private router: Router) {}
onSubmit(email, password) {
this.userService.login(email, password).subscribe((result) => {
if (result) {
this.router.navigate(['']);
}
});
}
}
顺便说一下,以下的例子 https://medium.com/@blacksonic86/angular-2-authentication-revisited-611bf7373bf9#.723a4ssji 没有localstorage