2016-12-07 10 views
0

APIのために私自身のミドルウェアを作成しました。続いて、私は私のController内この$user変数にアクセスすることができaccess_tokenミドルウェアから変数を取得する方法は?

namespace App\Http\Middleware; 

use Closure; 
use App\Exceptions\GeneralException; 
use App\Models\Access\User\User; 

class authNS 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     try { 

      $user = User::where("access_token",$request->header('access-token'))->with('details')->first(); 

     } catch (Exception $e) { 

      return response()->json(['error'=>'Something is wrong']); 

     } 

     return $next($request); 

    } 
} 

のparamsの要求に基づいて、有効なユーザーの詳細情報を取得するためしかし、どのように私のコードですか?

答えて

1

onceUsingId()を使用すると、1回のリクエストでユーザーをアプリケーションにログインできます。あなたのmiddlewareあなたはとしてそれを使用することができますでそう

:あなたのコントローラに続いて

$user = User::where("access_token",$request->header('access-token'))->first(); 

if($user) { 
    auth()->onceUsingId($user->id); 
} 

、あなたが使用できるセッションやクッキーいいえ、この方法は、ステートレスAPIを構築する際に役立つかもしれないことを意味する、利用されませんそれのように:

auth()->user() 

Docs

+0

ありがとうございました。それは完全に働いた – devmyb

+0

@iコード、私はあなたが助けてください。こちらをご覧ください:http://stackoverflow.com/questions/41030097/how-to-add-some-textfield-in-form-register-laravel-generator-infyom –

関連する問題