Самый безопасный способ передачи авторизованного пользователя из бэкэнда Laravel во фронтэнд с React

Я создаю приложение погоды с Laravel (почти закончено), и я решил реализовать интерфейс с React / Redux / React-маршрутизатором и использовать Laravel из API-вызовов. Единственное, что я решил оставить прежним, это моя пользовательская реализация laravel auth с маршрутами и представлениями. Тем не менее, я изо всех сил пытаюсь найти безопасный способ передать мой объект Auth :: user после входа в систему, чтобы сохранить на Redux. У меня есть 2 варианта:

1) После входа в систему и до рендеринга основного jsx, сделать запрос axios на конкретный маршрут, чтобы вернуть Auth :: user как:

в route.php

Route::post('/auth/user' ,function(){
return response()->json(['user'=>auth()->user()]);
})->middleware('auth');

в JS

axios.post('/auth/user').then((res)=>{console.log(res.data.user)}).catch((e)=>{console.log(e)})

2) передать Auth :: user с помощью blade-сервера, перехватить его с помощью getAttribute, сохранить его в Redx и мгновенно удалить из DOM:

<div id="app" data-usr="{{ auth()->user() }}"></div>

Однако ни один из них не кажется мне безопасным способом передачи такого рода данных. Кто-нибудь может сказать мне свое мнение об этом или придумать мне лучшее решение?
Большое спасибо.

0

Решение

Я хотел бы создать класс, который будет представлять пользователю только жизненно важную информацию, которую я должен показывать на внешнем интерфейсе.

Так что вместо прохождения auth->user() вперед, вы можете ввести его в decorator и генерировать simpler user class только с методами, которые вы хотите отобразить.

0

Другие решения

К счастью, я нашел решение со встроенной в Laravel реализацией API TOKEN. Также я уничтожаю токен после выхода из системы и воссоздаю его при входе в систему, чтобы никто не мог использовать его с другими службами для сбора данных, если он не вошел в систему.

0

По вопросам рекламы [email protected]