我是angular 5和Ngrx的新手,有些我如何设法实现登录功能,一旦登录成功我将用户带到仪表板。但是如果我刷新页面,用户状态似乎就会丢失。如果页面重新加载,如何使用户状态持久?
答案 0 :(得分:8)
如果页面重新加载,如何使用户状态持久?
as @ user184994提到的NGRX
状态仅存储在内存中。如果您希望它在页面刷新之间保留,请转到LocalStorage
或sessionStorage
localStorage
和sessionStorage
完成相同的操作并使用相同的API,但使用sessionStorage
时,数据仅在窗口或制表符关闭时保留,而{{1}数据一直存在,直到用户手动清除浏览器缓存或直到您的Web应用程序清除数据为止。
我建议你去Angular的@ngx-pwa/local-storage异步本地存储
localStorage
在RootModule中注册
npm install @ngx-pwa/local-storage@5
注入并使用
import { LocalStorageModule } from '@ngx-pwa/local-storage';
@NgModule({
imports: [
BrowserModule,
LocalStorageModule,
...
]
<强>用法强>
import { LocalStorage } from '@ngx-pwa/local-storage';
@Injectable()
export class YourService {
constructor(protected localStorage: LocalStorage) {}
}
答案 1 :(得分:0)
本地存储和会话存储带来了安全风险(可以操纵用户信息),我认为对于如何解决浏览器刷新后如何生存的根本问题,存在更好的答案。
通常,最好将一些代码放入应用程序组件的onInit方法中以重新加载需要在浏览器刷新后保存的数据。