Ръчно излизане от предишната сесия на браузъра, ако потребителят влезе в нов браузър в Cakephp 3

Работя върху Cakephp 3.

Имам нужда от потребителско влизане само веднъж в даден момент.

Използвам компонент Auth на Cakephp за влизане в приложението. Работих със сесия на база данни и сесия на торта.

Но когато се опитвам да изтрия сесията ръчно от базата данни или да изтрия формата на файла на сесията app/tmp/session, сесията се създава отново.

Не искам да забраня второ влизане на потребител, но искам да унищожа предишната сесия.

как мога да постигна една сесия на потребител в Cakephp 3.


person user4255847    schedule 10.06.2015    source източник


Отговори (1)


Можете да съхраните идентификатора на текущата сесия на потребителя в таблицата на потребителите:

  • Преди да влезете, проверете дали идентификаторът на текущата сесия присъства в таблицата с потребители за този потребител.

  • Ако идентификаторът на сесията е наличен, унищожете старата сесия, като я изтриете от таблицата със сесиите.

  • След влизане запазете генерирания идентификатор на сесия.

person José Lorenzo Rodríguez    schedule 10.06.2015
comment
Лоренцо Опитах този метод, но сесията се създаде автоматично в /app/tmp/sessions на отдалечена машина, трябва ръчно да изтрия файла на сесията - person user4255847; 11.06.2015
comment
Не използвайте cake сесии, за този случай на употреба е по-лесно да използвате сесии на база данни - person José Lorenzo Rodríguez; 12.06.2015
comment
@JoséLorenzo Знам, че мина известно време, откакто това беше публикувано и беше даден отговор. Но в момента работя точно по този проблем. Чудех се дали бихте могли да обясните как точно да направя това? Имам настройки за сесии на база данни и те работят, но не мога да разбера как да проверя дали съществува конкретна сесия и как да изтрия конкретна сесия. - person Arak Tai'Roth; 11.07.2017