Я использую expressjs и angularjs для приложения. В принципе, expressjs просто возвращает один .html, который имеет угловое одностраничное приложение. Вся маршрутизация выполняется с помощью angularjs, а expressjs предоставляет только некоторые веб-службы (GET, POST).Express.js и Angular - сеанс аутентификации и регистрации
Итак, если бы я сделал только обычное приложение expressjs, я бы использовал passjs и сохранил пользователя в сеансе на стороне сервера, который бы это был. Когда пользователь пытается получить доступ к страницам/администраторам, я бы использовал паспортное ПО для проверки того, разрешен ли маршрут и т. Д. Легко и просто.
Но с угловыми маршрутами все делается на стороне клиента - даже при оценке того, входит ли пользователь в систему. Теперь, конечно, об этом написано много, но почти все решения хранят любой токен-ключ в localStorage
или angular's $cookie
. Теперь мне интересно - это безопасно?
Если кто-нибудь запустил такое приложение на общедоступном компьютере и забыл выйти из системы, любой мог бы посмотреть на localStorage
или на угловой $cookie
и получить токен, не так ли?
Итак, каков теоретический процесс реализации безопасной аутентификации на стороне клиента, используя angularjs?
ok, поэтому это не хранится в файле cookie или localstorage? но что произойдет, если пользователь закроет браузер, а затем вернется на страницу - он должен снова войти в систему, верно? – uglycode
Ну, да. Вы не можете иметь это в обоих направлениях. Другое, что вы можете сделать, это добавить файл cookie, который идентифицирует сеанс на сервере. Единственное, что в cookie пользователя - это идентификатор сеанса. Функция self invoking в службе MyAuthentication пытается получить сеанс ... Таким образом, вы можете что-то там сделать. – akaphenom
Реальность заключается в том, что вам нужно будет либо сохранить что-то локальное, либо потребовать повторного входа в систему, если они закроют браузер. ЕСЛИ вы храните что-то локальное, тогда вам лучше хранить как можно меньше. – akaphenom