чтобы попасть вообще на страницу SPA нужно зайти под логином, и уже нужно вытащить данные по Api с этого же сервера в который зашли
сначала классическая авторизация, а потом данные вытягивать нужно по API
routes/web.php
Route::get('/{any}', [App\Http\Controllers\SpaController::class, 'index'])->where('any', '.*')->middleware('auth');
class SpaController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('spa.index');
}
}
//получать данные из vue.js
Но доступ к маршрутам /api/v1/users/ и т .д. только авторизированным пользователям
axios.get('/api/v1/users/', {
})
.then((response => {
console.log(response);
}))
//Есть такой вариант, что когда пользователь авторизуется запрос же попадает в контролер для возврата view()
class SpaController extends Controller
{
public function index()
{
//получить через фасад авторизованного юзера:
$user = \Illuminate\Support\Facades\Auth::user();
//зашифровать его майл
if ($user) {
$encMail = encrypt($user->email);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
//и передать во view $encMail а в vue.js этот $encMail использовать когда будет запрос через Api а на сервере уже расшифровать этот $decryptMail = decrypt($encMail);
и получить уже запрошенного юзера по расшифрованному email.
return view('spa.index', compact('encMail'));
}
}
//Нормально ли так? приложение маленькое для небольшого круга лиц
спасибо!