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

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

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

в маршрутах.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 :: пользователя с блейдом, перехватить его с помощью getAttribute, сохранить его в приставку и немедленно удалить из DOM:

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

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

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

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

0 голосов
/ 20 ноября 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...