angular - 将 HttpClient 响应转换为布尔值
问题描述
我正在authService
调用我的后端端点进行身份验证,我只想将真/假返回给另一个组件,以便显示/隐藏错误消息。最重要的是,成功后我想将令牌存储在localStorage
.
signIn = (signInFormValue) => {
var response = this.authService.authenticate(signInFormValue.username, signInFormValue.password)
if(response) {
console.log(response)
this.invalidCredentials = false;
} else {
this.invalidCredentials = true;
}
}
哪个叫这个
authenticate(username: string, password: string) {
return this.callAuthenticationEndpoint(username, password).pipe(map(res =>{
localStorage.setItem('token', res.headers.get('Authorization');
return true;
}, err => {return false}))
}
callAuthenticationEndpoint(username: string, password: string): Observable<any> {
var url = this.AUTHENTICATE_URL + 'username=' + username + '&password=' + password;
return this.http.get(url, {observe: "response"});
}
问题是,response
不是真/假,而是
解决方案
你从服务中收到的是一个 Observable。要获得你想要的布尔响应,你必须订阅这个 Observable:
signIn(signInFormValue){
return this.authService
.authenticate(signInFormValue.username, signInFormValue.password)
.subscribe(response => console.log(response));
}
推荐阅读
- angular - 在开发时重新加载路由到主页(Angular,Nativescript)
- postgresql - 当我关闭后端容器时,Docker 丢失了 Postgres 服务器数据
- html - 如何在按钮的最右侧而不是文本旁边设置我想要的箭头?
- google-sheets - 你如何按列对表格求和并返回总和范围?
- javascript - .map() 嵌套数组不工作 JavaScript
- jsonschema - json schema oneOf 验证问题...无法获得正确的验证
- r - 替换 data.table 中的嵌套 ifelse
- excel - 配方开发援助
- reactjs - 使用 react i18n 部署我的 React 应用程序会在 locales.json 上引发 404 错误
- python - 为什么 Sonic Visualizer 和我的 Python 脚本之间的频谱分析存在 dB 差异?