我读过“对密码加盐”的方法可以提高密码保护。但我不明白如果密码以复杂的形式存储,如何检查密码。我假设用户的密码在客户端上进行了加密,然后将其哈希代码与数据库中的哈希代码进行比较。我没有网络开发经验。我正在学习网络安全的方法。
我读过一些关于 Observable 和取消订阅的文章。但是我对 pipe() 的一些信息不了解。在某些情况下,管道会自动取消订阅。这些案例是什么?我有一项服务用于连接到我的服务器和一个组件。我应该在这里取消订阅并使用 ngOnDestroy 吗?它为 CRUD 应用程序提供简单的服务。
例如,来自服务的一种方法:
public getSubject(size:number, page:number) : Observable<Subject[]> {
return this.http.get<Subject[]>(environment.apiUrl + '/subject?size='+size+'&page='+page)
.pipe(
map(data=>{
return data;
}),
catchError(err => {
return throwError(err);
}));
}
Run Code Online (Sandbox Code Playgroud)
和组件使用带有销毁器的服务。
//...some code
pageClick() {
this.subscriptions.add(this.connector.getSubject(this.pageSize, this.page - 1)
.subscribe(data => {
this.subject = data;
this.errorFlag = false;
}, error => {
this.error = error.error.message;
this.errorFlag = true;
}));
}
//..some code..
@HostListener('window:beforeunload')
ngOnDestroy() {
this.subscriptions.unsubscribe();
}
Run Code Online (Sandbox Code Playgroud)