Прочитал https://htmlweb.ru/php/example/avtorizacija2.php, но не понял как сделать так чтобы при входе на сайт автоматически отображался аккаунт пользователя, если пользователь не вышел из него в прошлый раз посещения сайта (ну к примеру как тут на stackoverflow
Чтобы при каждом посещении сайта пользователь был авторизован, если он до этого не выходил с аккаунта.
$token = bin2hex(openssl_random_pseudo_bytes(10));
полученный таким образом токен сохраняем в куку и в БД.
при заходе на сайт, если нет авторизации, но есть кука с таким значением, то найти ее в бд, и авторизовать пользователя. если куки нет или значение не найдено, то показать форму авторизации
после использования токена поменять на новый
Механизм со стороны фронтенда очень прост. После регистрации или входа в бэка приходит token. Его мы кидаем в localStorage
(localStorage.setItem('token', token)
). При выходе пользователя мы удаляем(localStorage.removeItem('token')
). При входе мы смотрим есть этот токен(localStorage.getItem('token')
). Если он есть, то авторизируем пользователя, если нет, то кидаем на страницу авторизации.
Вообще-то практика вечного авто-логина
не очень хорошая идея. Достаточно представить, что пользователь Вашего сайта будет заходить из какого-нибудь Интернет-кафе или с чужого компьютера и забудет сделать logout
... Но, условия задачи ставите Вы - Вам и все риски в руки :)
Итак, мой алгоритм:
session_id
(уникальный ID его сессии он же токен) - генерируете его по своему усмотрению каким угодно алгоритмом. Например md5(time()+<user_id>)
. Так же генерируем пользователю уникальный <cookie_id>
<session_id>
и <cookie_id>
в БД. Также <session_id>
сохраняем в $_SESSION
, а <cookie_id>
в браузер. Для выполнения условий задачи выставляем для <cookie_id>
неограниченное время жизни.<session_id>
в $_SESSION
, если есть проверяем что пользователь с таким <session_id>
в БД существует.<session_id>
в $_SESSION
нет - значит истекло ее время жизни установленное в php.ini
$_COOKIE
и смотрим есть ли там <cookie_id>
, проверяем, что есть пользователь в БД с таким <cookie_id>
.У меня так сделано на большом кол-ве живых
проектов. Только у меня еще ограничено время жизни cookie_id
, чтобы избежать вечного авто-логина
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
хочу реализовать метод, проверяющий переданный параметр на nullВ случае, если параметр равен null, то кидаю исключение
в 2d игре на unity пишет такую ошибку при попытке подключения к TextMeshPro через c# код TextMeshPro в UI unity 2020
Хотелось бы узнать, можно ли использовать API Google Карт для отображения конкретных ближайших магазинов на карте? Вкратце: есть мобильное приложение...