私はjwtベアラトークン(Works)を送るAngularと.Netコアの認証プロセスを理解しようとしています。ですから、私の問題は、ユーザーを(後でロールを使って)適切に管理するために、ガードと認証サービスで何をすべきか分かりません。しかし、私はいくつかのものを試して、今私は私のAuthServiceで何をすべきか分からない。Angular 5認証
EDIT ログイン投稿後にサーバーからトークンと有効期限が取得されます。だから私はそれらを保存したいし、後でまたクレームだがidk how。私は何を返すべきですか?トークンが、どのようにその観察可能な場合はブール値を返すのであれば、今私がチェックする方法がわからない
@Injectable()
export class AuthService {
isLoggedIn = false;
constructor(private http: HttpClient) {}
login(email:string, password:string) :Observable<boolean>{
this.http.post('/login', {email, password})
.subscribe(data =>
{
//TODO: check for Token ???
let userAuth = data;
if(userAuth) {
localStorage.setItem('currentUser', JSON.stringify(userAuth));
return true;
}else{
return false;
}
},
(err: HttpErrorResponse) => {
if(err.error instanceof Error){
console.log("error client side");
}else{
console.log("Server side error.");
}
});
//what should i return ????? and how
}
logout() {
localStorage.removeItem('currentUser');
}
}
:
これは私のAuthServiceがどのように見えるかです。また、ログイン後に今後の調査を確認するために重要なことは何ですか?
@Injectable()
export class AuthGuardService implements CanActivate{
constructor(private router:Router) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):
boolean | Observable<boolean> {
if(localStorage.getItem('currentUser')){
return true;
}
this.router.navigate(['auth/login'],
{queryParams: { returnUrl: state.url}});
}
}
何が問題なのですか? –
コードを投稿してください。そのイメージではありません。 –
私はあなたもトークンを保存したいと思うでしょう。または 'currentUser'の内容は何ですか?はい、言及したように、問題は何ですか? :) – Alex