Mình đang làm web với ExpressJs và Angularjs, dùng passport-jwt để đăng nhập.
Sau khi người dùng đăng nhập thì server trả về 1 token, user_id và username. Mình lưu tất cả trong cookie. Mỗi lần người dùng bật trang web lên mình sẽ kiểm tra xem trong cookie có token hay ko, nếu có thì coi như đăng nhập rồi.
function isLoggedIn() {
if ($cookies.get('token')) {
return true;
} else {
return false;
}
}
if (isLoggedIn) {
$rootScope.username = $cookies.get('username');
}
Tất nhiên trên server vẫn có middleware để check xem user có thật sự đã login hay chưa hay chỉ là token giả do người dùng tạo:
router.post('/info', authenticate(), function(req, res){})
Tuy nhiên mình cảm thấy vẫn chưa hài lòng lắm vì người dùng có thể vào cookie, tạo một token giả nào đó, một username giả là đã coi như đăng nhập ở client. Mặc dù không truy cập được vào các routing ở server nhưng cảm thấy trang web của mình như bị hack vậy. Cho mình hỏi có cách nào khác để làm chức năng này không ?