注销后用户数据保留在 angular ,nu线索为什么
User data remain after logout in angular , nu clue why
一切正常,但是当我想切换用户并注销时,下一个用户不会更新其数据,而是继承上一个用户的图像和数据...
我使用会话存储和本地存储,但即使在用户从存储中删除后它仍然继续显示 lol
这是我的特定代码:
page1.ts
//vars
personSubject = new ReplaySubject<any>(1);
person$: Observable<any> = this.personSubject.asObservable();
getFullPosts: Observable<any>;
public userGallery: any;
getFullPosts() {
this.authService.getAllPosts().subscribe((res: any) => {
this.getFullPosts = res.data.post;
this.personSubject.next(res.data.post)
this.userGallery = res.data.post.forEach(img => {
img.galleryImages = img.images.map(image => {
return new ImageItem({ src: image, thumb: image });
});
})
});
auth-service.ts
//vars
constructor(){
this.keepToken = window.sessionStorage.getItem('token');
if (this.completeUser != null) {
console.log("User data is : ", this.getUser);
console.log("User token is : ", this.keepToken);
} else {
console.log("Can't get token..")
}
}
public get getToken(): any {
const TOKEN = window.sessionStorage.getItem('token');
return TOKEN;
}
public get getUser(): UserRegistered {
const USER = JSON.parse(window.sessionStorage.getItem('user'));
return USER;
}
page2.ts
async logout() {
// remove user from local storage and set current user to null
window.sessionStorage.setItem('button', 'true');
this.clicked = window.sessionStorage.getItem('button');
const loading = this.loadingCtrl.create({
keyboardClose: true,
message: "Logging out. Please wait ...",
duration: 2500
});
(await loading).present();
setTimeout(async () => {
const user = window.sessionStorage.removeItem('user');
const remember = window.sessionStorage.removeItem('remember');
const getuser = window.sessionStorage.getItem('user');
console.log(user, remember, getuser);
window.sessionStorage.setItem('button', 'false');
this.clicked = window.sessionStorage.getItem('button');
const redirect = this.router.navigate(['/auth']);
(await loading).dismiss();
await redirect;
window.sessionStorage.clear();
}, 3500)
}
注销后我用另一个帐户重新登录,但新用户的数据没有更新,但在控制台中我得到了正确的新用户数据,只是在前端没有显示。有什么想法吗?
这可以通过删除“firebase:session::”的 localStorage
条目来解决。
window.localStorage.removeItem("firebase:session::<host-name>");
一切正常,但是当我想切换用户并注销时,下一个用户不会更新其数据,而是继承上一个用户的图像和数据... 我使用会话存储和本地存储,但即使在用户从存储中删除后它仍然继续显示 lol
这是我的特定代码:
page1.ts
//vars
personSubject = new ReplaySubject<any>(1);
person$: Observable<any> = this.personSubject.asObservable();
getFullPosts: Observable<any>;
public userGallery: any;
getFullPosts() {
this.authService.getAllPosts().subscribe((res: any) => {
this.getFullPosts = res.data.post;
this.personSubject.next(res.data.post)
this.userGallery = res.data.post.forEach(img => {
img.galleryImages = img.images.map(image => {
return new ImageItem({ src: image, thumb: image });
});
})
});
auth-service.ts
//vars
constructor(){
this.keepToken = window.sessionStorage.getItem('token');
if (this.completeUser != null) {
console.log("User data is : ", this.getUser);
console.log("User token is : ", this.keepToken);
} else {
console.log("Can't get token..")
}
}
public get getToken(): any {
const TOKEN = window.sessionStorage.getItem('token');
return TOKEN;
}
public get getUser(): UserRegistered {
const USER = JSON.parse(window.sessionStorage.getItem('user'));
return USER;
}
page2.ts
async logout() {
// remove user from local storage and set current user to null
window.sessionStorage.setItem('button', 'true');
this.clicked = window.sessionStorage.getItem('button');
const loading = this.loadingCtrl.create({
keyboardClose: true,
message: "Logging out. Please wait ...",
duration: 2500
});
(await loading).present();
setTimeout(async () => {
const user = window.sessionStorage.removeItem('user');
const remember = window.sessionStorage.removeItem('remember');
const getuser = window.sessionStorage.getItem('user');
console.log(user, remember, getuser);
window.sessionStorage.setItem('button', 'false');
this.clicked = window.sessionStorage.getItem('button');
const redirect = this.router.navigate(['/auth']);
(await loading).dismiss();
await redirect;
window.sessionStorage.clear();
}, 3500)
}
注销后我用另一个帐户重新登录,但新用户的数据没有更新,但在控制台中我得到了正确的新用户数据,只是在前端没有显示。有什么想法吗?
这可以通过删除“firebase:session::”的 localStorage
条目来解决。
window.localStorage.removeItem("firebase:session::<host-name>");