Laravel+Vue: Авторизация, регистрация — как сделать?

Как реализовать авторизацию и регистрацию пользователей в Laravel с использованием Vue?
Читал про jwt auth, но потом посоветовали laravel passport, и я хз что делать.
Мое предположение:
Написать контроллер, в котором будут методы, login, register, logout.
И соответственно контроллер будет прикреплен к маршрутам - /sign, /exit, /signin.
Потом из vue компонентов делать запросы на данные маршруты.
Тогда возникает вопрос - как во vue компонентах отобразить текст, который должен быть виден только авторизированным юзерам
Второе предположение:
Использовать стандартные контроллеры, тогда - как изменить, что должны возвращать контроллеры? как во vue компонентах отобразить текст, который должен быть виден только авторизированным юзерам?
  • Вопрос задан
  • 13383 просмотра
Пригласить эксперта
Ответы на вопрос 2
Laravel (JWT):
Установка и настройка пакета jwt-auth прекрасно описан. Что насчет контроллера - CTRL + C и CTRL + V. Также не забудьте про CORS.

Vue:
Ходить далеко тоже не нужно. Есть прекрасный пакет vue-auth, который сам сохраняет токен в localStorage, вытаскивает и вставляет в заголовок при запросах. Интегрируется это добро за 5 мин.
И собственно отображение только авторизованным пользователям:
<span v-if="$auth.check()">текст для авторизованного</span>


Подсказка, если будете работать с этими пакетами:
Vue-auth выдергивает токен из заголовка, а не из тела ответа. А в документации jwt-auth в контроллере токен вставляется в тело ответа. Нужна небольшая модификация контроллера:
protected function respondWithToken($token)
    {
        return response()->json([
            'status' => 'success',
        ])->header('Authorization', $token);
    }
Ответ написан
@mikaakim
Веб-разработчик ПО
в localStorage кладётся токен, стейт регистрации можно хранить в Vuex. Уж показывать сообщение как при определённых условиях можно нагуглить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы