我正在关注这篇文章。作者fake-backend.ts
用于拦截一个以 url 结尾的 api 调用,/api/authenticate
并根据静态数组中的用户名和密码检查用户。
当用户使用用户名和密码提交表单时,它会调用authentication.service.ts
登录函数,该函数会在路径上发布调用,/api/authenticate
并且由于调用的 url 以 so 结尾,/api/authenticate
所以现在fake-backend.ts
开始发挥作用,从静态数组验证用户。成功验证后,它会生成一个令牌并控制返回authentication.service.ts
到映射响应对象
我fake-backend.ts
通过调用 api 来验证数据库中的用户来改变这一点。但我得到了错误。
https://localhost:44348/api/authenticate的 Http 失败响应:404 OK
也调用不返回authentication.service.ts
来映射响应对象。
if (request.url.endsWith('/api/authenticate') && request.method === 'POST') {
const UserName = request.body.username;
const Password = request.body.password;
var credentials = { UserName, Password };
//return this.employeeService.autheticateEmployeeByCredentials(credentials);
this.employeeService.autheticateEmployeeByCredentials(credentials).subscribe((res) => {
if (res == 1)
return of(new HttpResponse({ status: 200, body: { token: 'fake-jwt-token' } }));
else
return throwError({ error: { message: 'Username or password is incorrect' } });
});
}
编辑:
我正在使用 api 控制器并从返回的 1 进行验证,如果它在 db 中,否则为 0。还从 api 获得响应,但控制不会返回到 authentication.service.ts,而是去login.component.ts
订阅并抛出此错误。