我正在做一个带有节点 js 后端的 Angular 4 应用程序。我做了登录表单,一切都很好我想实现“记住我”的功能。
这是我的登录服务:
import { Injectable } from '@angular/core';
@Injectable()
export class loginService{
rememberMe: boolean;
constructor() { }
login(credentials) {
sessionStorage.setItem('Name', credentials.firstName);
sessionStorage.setItem('token', credentials.token);
}
getCostumer() {
const user = {
Name: sessionStorage.getItem('firstName'),
token: sessionStorage.getItem('token')
}
这是组件:
constructor(private signInService: SignInService, private router: Router,
public dialog: MatDialog, private authService: AuthService) { }
ngOnInit() { }
login(costumer) {
this.loginService.login(costumer).subscribe((data) => {
this.authService.login(data);
this.router.navigate(['home']);
this.dialog.closeAll();
}, err => {
this.message = err._body;
console.log(this.message);
});
}
}
最佳答案
使用localStorage
代替sessionStorage
在你的情况下,你可以这样做:
if (isRemberMeChecked) {
...
localStorage.setItem('Name', credentials.firstName);
localStorage.setItem('token', credentials.token);
...
} else {
...
sessionStorage.setItem('Name', credentials.firstName);
sessionStorage.setItem('token', credentials.token);
...
}
如果你想在全局范围内获取 isRemberMeChecked
值,你可以使用 angular service
关于javascript - 如何实现记住我的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49508979/