注销后如何保存用户详细信息

时间:2019-08-01 13:05:50

标签: angular

我正在设置角度为7的身份验证应用程序,我想在每个身份验证中保存用户的详细信息(名字,姓氏,loginTime,连接持续时间)。

EmployeeDetails.ts:

`import { Component, OnInit, OnDestroy } from '@angular/core';
import { first } from 'rxjs/operators';
import { User } from '../_models';
import { UserService, AuthenticationService } from '../_services';
@Component({
selector: 'app-employee-details',
templateUrl: './employee-details.component.html',
styleUrls: ['./employee-details.component.css']
})

export class EmployeeDetailsComponent implements OnInit, OnDestroy {
currentUser: User;
userFromApi: User;
constructor(
    private authenticationService: AuthenticationService,
    private userService: UserService
) {
        this.currentUser = this.authenticationService.currentUserValue;
}

ngOnInit() {
  this.userService.getById(this.currentUser.id).pipe(first()).subscribe(
data => { 
    this.userFromApi = data;
});`

EmployeeDetails.html:

`<h1>Hi {{currentUser.role}}!</h1>

<h3>users's details</h3>
<ul>
<li >
    {{currentUser.username}} ({{currentUser.firstName}} 
{{currentUser.lastName}}) <strong>start connection at 
{{authenticationService.today | date :'medium'}} </strong> duration : 
{{authenticationService.timeLeft}}

</li>
</ul>`

我想查看所有已登录用户的详细信息,但我只看到当前用户的详细信息,如何保存当前用户的详细信息? this is the result when i run the above code

感谢帮助!

1 个答案:

答案 0 :(得分:1)

在这种情况下,我认为最好的解决方案是使用websocket而不是默认的http连接。 HTTP仅适用于request => response,因此,如果您不请求任何内容(例如,当您关闭浏览器时,您的服务将不知道确切的时间) Websocket是双向打开连接,即使用户关闭了浏览器选项卡,您也会在其中收到断开连接事件。

https://socket.io/上有一个很好的例子