Как мне получить переменную из моего контроллера входа, чтобы она была доступна для всех представлений в Laravel? - PullRequest
1 голос
/ 06 июля 2019

Я новичок в программировании и создаю свое первое реальное приложение, которое использует EVE Online ESI API.У меня настроен контроллер входа, который перенаправляет пользователя в ESI для входа и обрабатывает обратный вызов.Пока я могу успешно подключаться и извлекать данные, такие как имя пользователя, токен и т. Д., В переменную моего контроллера входа в систему, и я могу немедленно передать эту переменную в представление.Моя проблема состоит в том, чтобы выяснить, как сделать эту переменную доступной для всех представлений.

Я пытался использовать View :: share ('user', $ user);в контроллере входа, но он не работает.

В моем web.php у меня есть следующие маршруты:

Route::get('login/eveonline', 'EVELoginController@redirectToProvider');
Route::get('login/eveonline/callback', 'EVELoginController@handleProviderCallback');

У меня есть это в моем файле EVELoginController.php:

<?php
namespace App\Http\Controllers;

use Socialite;
use Laravel\Socialite\Two\User;
use View;

class EVELoginController extends Controller {

    /*
    | Redirect the user to the EVE online authentication page.
    |
    | @return \Illuminate\Http\Response
    */

    public function redirectToProvider() {

        return Socialite::driver('eveonline')->redirect();

    }

    /*
    | Obtain the user information from EVEOnline.
    |
    | @return \Illuminate\Http\Response
    |
    */

    public function handleProviderCallback() {

        $user = Socialite::driver('eveonline')->stateless()->user();

        return View::make('successful-eve-login',$user);        

    }

}

С этим кодом представление получает переменную, и я могу использовать ее в HTML представления.Но эта переменная нигде не сохраняется, так что ее можно получить другими представлениями позже.Каков наилучший способ получения данных в других представлениях?Простите, что я очень нуб, но я пытаюсь.

1 Ответ

0 голосов
/ 06 июля 2019

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

Вы можете посмотреть эти официальные документы. Сеанс

Аутентификация

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