1

Sentry 2 を使用して認証システムを構築しています。私が直面している問題は、ユーザーが認証されて Sentry 経由でログインした後、ユーザーのセッションを作成できないことです。これは私のコントローラコードです:

public function postLogin()
{
    $credentials = array(
        'email' => Input::get('email'),
        'password' => Input::get('password')
    );

    try 
    {
        $user = Sentry::authenticate($credentials, false);
        if ($user)
        {
            if(Input::get('remember')=='true')
                Sentry::loginAndRemember($user);     
        }
    }
    catch(\Exception $e)
    {
        return View::make('hello')->withErrors(array('login' => $e->getMessage()));
    }
    try
    {
        Sentry::login($user, false);
    }
    catch (Cartalyst\Sentry\Users\LoginRequiredException $e)
    {
        echo 'Login field is required.';
    }
    catch (Cartalyst\Sentry\Users\UserNotActivatedException $e)
    {
        echo 'User not activated.';
    }
    catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
    {
        echo 'User not found.';
    }
}

ログイン後、ユーザーが実際にログインしているかどうかを確認するために、認証されたユーザーの詳細をダンプする別のコントローラー アクションを作成しました。

public function index()
{
    var_dump(Auth::user());
}

var_dump() は null を返します。ここで何が欠けていますか?私はLaravelとSentryが初めてです。どんな助けでも大歓迎です!前もって感謝します!

4

2 に答える 2

3

を使用する場合はSentry、Laravels を使用しなくなりますAuth。それらは互いに完全に独立しています。

代わりに、あなたは今使用します

$user = Sentry::getUser();

https://cartalyst.com/manual/sentry/users/findを参照してください

于 2014-03-19T08:10:47.483 に答える
0

Sentry セッション ユーザーにアクセスするには、この {{Sentry::getUser()}} を使用します

Auth::user() は laravel セッション オブジェクトを返します。

于 2014-03-19T08:18:09.337 に答える