Какие есть варианты реализации автоматической авторизации?
Слова "лучше" и "наиболее" здесь, конечно, неприменимы, как и в большинстве связанных с программированием вопросов.
Я на одном из проектов сделал это так:Есть таблица token_actions, куда записывается секретный токен, название действия (Enum) и его аргументы в json.Действия могуть быть многоразовым и единичными.У токена может быть ограничено время жизни.Есть классы, каждый из которых обрабатывают конкретное действие, но имеют один интерфейс.Среди них есть и класс LogIn, который как раз авторизует пользователя.Есть контроллер, который принимает токен и по нему получает действие, создаёт объект его обработчика и выполняет его (для этого и нужен стандартный интерфейс).В письма, собственно, вставляются ссылки на обработчик токенов.Ну и ещё немного мелкой логики, добавляющей красоты и удобства.
Система получилась очень гибкой (по email можно сделать всё, что можно сделать на сайте - принять заявку в друзья, отправить комментарий со стандартным текстом, открыть форму редактирования чего либо) и безопасной (все важные действия одноразовые и есть проверка по правам доступа, насколько это возможно). А авторизацию по ссылке вы получаете как бонус, потому что каждое действие требует авторизованного пользователя, иначе и токены не нужны были бы.
Вот, я вам даже часть кода подарю: https://gist.github.com/alexey-m-ukolov/9588dcefc9...
Используйте токены jwtauth. Там все уже продумано