Chào các bạn, mình đang viết 1 ứng dụng web bằng angular + spring boot có một chỗ ở phần thông báo cho người dùng biết username hoặc password nhập vào không đúng nhưng vẫn chưa giải quyết được, hy vọng được các bạn giúp đỡ
Phần login bằng angular
Service
constructor(private httpClient: HttpClient) { }
public login(username: String, password: String): Observable<boolean> {
let headers = new HttpHeaders({
"Content-Type": "application/json;charset=UTF-8"
});
let body = JSON.stringify({ username: username, password: password });
return this.httpClient.post<any>(this.loginUrl, body, { headers: headers, observe: 'response' }).pipe(
map(resp => {
console.log(resp);
if (resp.headers.has("Authorization")) {
this.user = JSON.parse(JSON.stringify(resp.body));
let token = resp.headers.get("Authorization");
localStorage.setItem("token", token);
return true;
}
return false;
})
);
}
Component
public login() {
this.authService.login(username, password).subscribe(
success => {
// login successful
console.log(success);
}, error => {
// login failed
console.log(error);
}
);
}
Phần server
public class JWTLoginFilter extends AbstractAuthenticationProcessingFilter {
@Override
protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response,
AuthenticationException exception) throws IOException, ServletException {
LOGGER.info("Failed authentication while attempting to access " + URL.getPathWithinApplication(request));
response.setStatus(401);
response.setContentType("application/json");
Res res = new Res(401, "Username hoặc password is incorrect!");
String json = JSONUtils.objectToJSON(res);
response.getWriter().write(json);
response.getWriter().flush();
}
}
Kết quả test trên postman thì thấy được đoạn thông báo này
Nhưng trên trình duyệt chỉ thấy được chữ OK