如何获取当前用户id angular 4?
How to get current user id angular 4?
我必须获取当前用户 ID 才能在我的应用程序的不同部分使用它..
login.component.ts:
onSignin(form: NgForm){
const UserName = form.value.UserName;
const Password = form.value.Password;
this.authService.signinUser(UserName,Password).map(res => res.json())
.subscribe(
data => {
if (data.Id == 0){
this.invalid=true;
}
else{
localStorage.setItem('isLoggedin', 'true');
this.router.navigate(['/calendar']);
console.log('Ok');
}})}
auth.service.ts:
signinUser(UserName,Password): Observable<any>{
return this.http.get('http://api.##.com/api/security/signin?username='+UserName+'&password='+Password);
}
您可以从后端传递包含 id 的令牌,或者您可以使用 redux store 将 id 存储在前端以供您的应用程序使用。下面是 angular 中 ng2 Redux 包的 link。
https://www.npmjs.com/package/ng2-redux
还有一个选项可以将它保存到本地存储,但我不喜欢 it.Or
前端可以这样使用session storage来保存数据
在您的登录组件文件中保存会话使用此代码
sessionStorage.setItem('id', data.id);
retrieving from the session//
var data = sessionStorage.getItem('id');
console.log(data) to see the id in the console
您想使用从服务调用中获得的用户 ID 来访问您应用中的不同组件。希望这就是您要找的。
您可以通过三种方式执行此操作。
- Shared Services - 利用共享服务将用户 ID 添加到服务中的用户 ID 主题,并在登录时设置。下次更改用户 Id 时,将通知观察组件。
- NGRX - 更简洁的共享服务实现,如果您的应用程序很大,我建议您使用它。
- 本地存储 - 这是非常值得商榷的,因为它也取决于用户的判断力。在组件之间设置和获取用户 ID。
请注意,如果用户在 NGRX 或共享服务中随时硬刷新页面,数据将会丢失,您可能需要使用本地存储进行全面校对。
我必须获取当前用户 ID 才能在我的应用程序的不同部分使用它..
login.component.ts:
onSignin(form: NgForm){
const UserName = form.value.UserName;
const Password = form.value.Password;
this.authService.signinUser(UserName,Password).map(res => res.json())
.subscribe(
data => {
if (data.Id == 0){
this.invalid=true;
}
else{
localStorage.setItem('isLoggedin', 'true');
this.router.navigate(['/calendar']);
console.log('Ok');
}})}
auth.service.ts:
signinUser(UserName,Password): Observable<any>{
return this.http.get('http://api.##.com/api/security/signin?username='+UserName+'&password='+Password);
}
您可以从后端传递包含 id 的令牌,或者您可以使用 redux store 将 id 存储在前端以供您的应用程序使用。下面是 angular 中 ng2 Redux 包的 link。 https://www.npmjs.com/package/ng2-redux 还有一个选项可以将它保存到本地存储,但我不喜欢 it.Or 前端可以这样使用session storage来保存数据
在您的登录组件文件中保存会话使用此代码
sessionStorage.setItem('id', data.id);
retrieving from the session//
var data = sessionStorage.getItem('id');
console.log(data) to see the id in the console
您想使用从服务调用中获得的用户 ID 来访问您应用中的不同组件。希望这就是您要找的。
您可以通过三种方式执行此操作。
- Shared Services - 利用共享服务将用户 ID 添加到服务中的用户 ID 主题,并在登录时设置。下次更改用户 Id 时,将通知观察组件。
- NGRX - 更简洁的共享服务实现,如果您的应用程序很大,我建议您使用它。
- 本地存储 - 这是非常值得商榷的,因为它也取决于用户的判断力。在组件之间设置和获取用户 ID。
请注意,如果用户在 NGRX 或共享服务中随时硬刷新页面,数据将会丢失,您可能需要使用本地存储进行全面校对。