我正在设置角度为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
感谢帮助!
答案 0 :(得分:1)
在这种情况下,我认为最好的解决方案是使用websocket而不是默认的http连接。 HTTP仅适用于request => response,因此,如果您不请求任何内容(例如,当您关闭浏览器时,您的服务将不知道确切的时间) Websocket是双向打开连接,即使用户关闭了浏览器选项卡,您也会在其中收到断开连接事件。
https://socket.io/上有一个很好的例子