Как я могу получить текущую информацию о пользователе для входа в систему в Angular 9 ????????????
Я новичок в веб-разработке и работаю над проектом в Angular 9. Я успешно вошли, указав имя пользователя и пароль. Теперь я хочу получить текущий идентификатор пользователя, но в этой задаче я потерпел неудачу. Пожалуйста, любой может помочь мне получить текущий идентификатор пользователя или текущий профиль пользователя из базы данных и сохранить эту информацию в локальном хранилище. Код моего login.component.ts здесь
import { AppConstants } from './../../private/AppConstants';
import { BadInput } from './../../../common/ErrorHandler/badInput';
import { AuthService } from '../../private/Services/auth.service';
import { Router, ActivatedRoute } from '@angular/router';
import { Component, OnInit } from '@angular/core';
import { AppError } from '../../../common/ErrorHandler/appError';
import { toBase64String } from '@angular/compiler/src/output/source_map';
import { stringify } from 'querystring';
@Component({
selector: 'login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
invalidLogin: boolean = false;
userName: string;
constructor(
private route: Router,
private router: ActivatedRoute,
private authService: AuthService) {
}
errorFlag: boolean;
errorMessage: string;
ngOnInit() { }
signIn(credentials) {
this.errorFlag = false;
this.authService.blockUI.start();
this.authService.login(credentials)
.subscribe(
resp => {
let returnUrl = this.router.snapshot.queryParamMap.get('returnURL');
if (resp !== undefined && resp["access_token"]) {
localStorage.setItem(AppConstants.userInfo , resp["access_token"] );
localStorage.setItem("message","Welcome Sajid");
localStorage.setItem("userid",resp["access_id"]);
this.route.navigate([returnUrl || '/']);
}
else this.invalidLogin = true;
this.authService.blockUI.stop();
},
(error) => {
this.authService.blockUI.stop();
if (error instanceof BadInput) {
//alert(error.message);
this.errorMessage = error.message;
}
//else throw error;
else if (error.status === 400) {
//alert(error.json().error_description);
this.errorMessage = error.json().error_description;
}
this.errorFlag = true;
}
);
}
}
My service code is given below
import { HttpClient } from '@angular/common/http';
import { AppConstants } from './../AppConstants';
import { NotFoundError } from '../../../common/ErrorHandler/notFoundError';
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs';
//import { Http, Headers, RequestOptions } from '@angular/http';
import { AppError } from '../../../common/ErrorHandler/appError';
import {environment} from '../../../environments/environment'
import { BadInput } from '../../../common/ErrorHandler/badInput';
import { NgBlockUI, BlockUI } from 'ng-block-ui';
import { Injectable } from '@angular/core';
@Injectable()
export class AuthService {
constructor(private http : HttpClient){
this.headers = new Headers();
this.headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.options = {headers : this.headers};
}
private headers;
private options;
@BlockUI() blockUI: NgBlockUI;
login(credentials)
{
return this.http.post( environment.authURL + "token",
"grant_type=password&username="+ credentials.userName + "&password=" + credentials.password +
"&client_id="+ environment.clientId ,this.options);
}
logout()
{
localStorage.clear();
}
isLogedIn()
{
let userInfo = localStorage.getItem(AppConstants.userInfo);
if(userInfo !== undefined && userInfo !== null)
{
//let expiryDate : Date = new Date(userInfo[".expires"]);
//if (expiryDate > new Date()) return true;
// Implement Refresh token Logic here as well ...........
return true;
}
return false;
}
currentUser()
{
let userInfo = localStorage.getItem(AppConstants.userInfo);
return userInfo;
}
private ErrorHandler(error : Response)
{
if(error.status === 404)
{
//return Observable.throw(new NotFoundError());
}
if(error.status === 400)
{
///return Observable.throw(new BadInput(error.json().error_description));
}
//return Observable.throw(new AppError(error));
}
}