2

Laravel 5.2では、を実行する必要がありますが、認証プロセスがトリガされています。 (ログイン後ではありません)Laravel 5.2:ログイン "試み"イベント処理

ここに私が行ったことがあります。 EventServiceProvider.php

app/Listeners/UserLoginAttempt.php

protected $listen = [ 
    'Illuminate\Auth\Events\Attempting' => ['App\Listeners\[email protected]'], 
]; 

<?php 
namespace App\Listeners; 

use Illuminate\Http\Request; 
use Illuminate\Auth\Events\Login; 
use Carbon\Carbon; 
use Auth; 

class UserLoginAttempt 
{ 
    public function __construct() 
    { 

    } 

    public function handle($event) 
    { 
     dd(Auth::user()); 
     exit; 
    } 
} 

これは、常にnullを返します。

**実際、私は上記のイベントハンドラからキャプチャする必要があるログインフォームに1つの「カスタム」フィールドを持っています。 (私は実際のログインイベントが行われる前に何かをチェックする必要があります。)

  • どのように私は(しよう\を照らし\認証\イベント)このからAuth::user()をキャプチャしますハンドラください?
  • (言い換えれば)(Illuminate \ Auth \ Events \ Attempting)ハンドラからのログインフォームとの対話方法を教えてください。
  • OR ----- Auth::user()オブジェクトは、ログインが完全に処理された後に作成されますか?つまり、私は "試している"段階でそれを得ることができないのですか?

私は最初のキャプチャにログイン要素を必要とし、それが(ハンドラで行われ、いくつかの計算後)「不正」何かであれば、その後、私は戻っへのログインの試みとルートを終了する必要があるためここからのログインフォーム。失敗メッセージを一緒に運ぶ。

ここに私が紛失していることを教えてください。ありがとうございました。

+1

[documentation](https://laravel.com/docs/5.1/authentication#retrieving-the-authenticated-user)によると、一度ユーザーが認証されると作成される 'Auth :: user()'オブジェクトが正しいでしょう。 – Abbasi

+0

@Abbasi助けてくれてありがとう。この場合、ログインフォームから提出された要素を取得する**適切な**方法は何ですか? ( '$ _GET [" my_custom_field "]'これは醜いのですか?) –

+0

'Request'を使います。 '$ my_custom_field = $ request-> input( 'my_custom_field');'これを達成しようとしているコントローラメソッドを提供すれば、さらにガイドするのは簡単でしょう。 – Abbasi

答えて

1

documentationによると、Auth::user()というオブジェクトは、ユーザーが認証されたときにのみ作成されるということです。

+0

はい、ありがとうございます。つまり、 '試行する '段階で' Auth :: user() 'は役に立たないということです。 –

関連する問題