Cách xử lý error khi gọi Private router trong reacjs khi goi API (gọi API từ reacjs,vue)
Cho mình hỏi trong thực tế khi gọi API từ reacjs hoặc vue ... nếu khi gọi vào 1 router private VD: api/admin chẳng hạn.
Với 1 user chưa login thì nó sẽ trả về lỗi 401 ( unauthorized status code) do header họ gửi lên k có token, hoặc token hết hạn ...
Nếu trả về như vậy thì trên console web brower sẽ báo error ( cá nhân mình thấy điều này không được hay cho lắm). Cho mình hỏi điều đó có chấp nhận được không? và nếu ko thì sẽ giải quyết bằng cách nào.
liệu có nên sửa lại response bên backend(laravel không) Status Code: 200 OK
{
status_code:401,
msg:'unauthorized status code'
}
Thanks
2 CÂU TRẢ LỜI
Việc trả về 401 nên giữ nguyên .
Còn nếu bạn không muốn nó hiển thị thì check kỹ token ở client trước khi gọi API thôi.
Kiểm tra có token ko : ko có thì cần gọi API login hoặc redirect qua login
token còn hạn không : hết hạn cần gọi API login hay redirect login
Qua nghiên cứu mình cũng nghĩ là nên để nguyên 401, sửa lại nó lại sai đi bản chất.
1.Mình thấy là nên để nguyên 401.Vì đó là bản chất của nó.
2.Việc báo lỗi console Web browser là hợp lý vì:
-Nó là nơi của Team Dev. không phải user.
-Khi trả về 401 thì nên show cho người dùng thấy qua sweetalert2, toastr,... or redirect đến trang 401 nếu có.