2016-11-10 15 views
0

laravelデフォルト登録(auth)を使用するWebアプリケーションを作成しました。私はtaylorチュートリアルのパスポートoauth2クライアントアクセストークンをテストしました。私のWebアプリケーションはUI用に角度jを使用し、バックエンド用にlaravelを使用するので、ユーザー作成リクエストを角度から送信してからグローバルアクセストークンを作成して、要求を認証するために使用します。パスポート経由でAngularJSとLaravel Appsのトークンベース認証(oauth2)を作成する方法

私は実際に私のWebアプリケーションのためのoauth2認証を実装したいと思いますが、これまではたくさん検索しましたが、ステップチュートリアルでそれを見つけることができませんでした。

誰でも私を助けることができますか?

FYI:私はlaravel 5.3を使用しています。パスポートを有効にし、角度js 1.5をフロントエンドに使用しています。

答えて

0

について学ぶことができ、ここで使用JWTトークンベースの認証。 私はlaravel authをログイン用にカスタマイズして登録しました。ユーザー登録用のアクセストークンを作成するリクエストをサーバーに送信する方法を作成しました。 私はパスポートを設定して、トゥルーリアル。

protected function sendLoginResponse(Request $request) 
    { 
     isset($request->token) ? $token = $request->token : $token = null;//Check if login request contain token 

     $request->session()->regenerate(); 

     $this->clearLoginAttempts($request); 

     return $this->authenticated($request, $this->guard()->user()) 
      ? $this->StatusCode($token,$this->credentials($request),$status=false) : $this->StatusCode($token,$this->credentials($request),$status=true); 

    } 

そして、私はアクセストークンを要求し、JSONレスポンスとして送信するために、このメソッドを追加しました:: その後、AuthenticatesUsers.phpに私が変更したsendloginResponse方法応答のようなレジスタのユーザーのための

public function StatusCode($token,$user,$status){ 

     if($token != null && $token != ''){ 
      return ($status == true) ? response()->json(GetToken($user),200) : response()->json(['Message' => 'Failed to log in'],403); 

     } 

     function GetToken($userobject) 
     { 
      $http = new Client; 

      $response = $http->post('http://localhost/iranAd/public/oauth/token', [ 
       'form_params' => [ 
        'grant_type' => 'password', 
        'client_id' => '1', 
        'client_secret' => 'xKqNbzcXyjySg20nVuVLw5nk5PAMhFQOQwRTeTjd', 
        'username' => $userobject['email'], 
        'password' => $userobject['password'], 
        'scope' => '', 
       ], 
      ]); 

      return json_decode((string) $response->getBody(), true); 
     } 

     function RefreshToken($token,$userobject) 
     { 
      $http = new Client; 

      $response = $http->post('http://localhost/iranAd/public/oauth/token', [ 
       'form_params' => [ 
        'grant_type' => 'refresh_token', 
        'refresh_token' => 'refresh_token', 
        'client_id' => '1', 
        'client_secret' => 'xKqNbzcXyjySg20nVuVLw5nk5PAMhFQOQwRTeTjd', 
        'username' => $userobject['email'], 
        'password' => $userobject['password'], 
        'scope' => '', 
       ], 
      ]); 

      return json_decode((string) $response->getBody(), true); 
     } 

      return ($status == true) ? response()->json(GetToken($user),200) : response()->json(['Message' => 'Failed to log in'],403); 

    } 

同じ手順。

1

あなたは、私がこれを解決してきましたJWT https://jwt.io/

+0

短縮形で見つけることができる、このいくつかの私は自分のソーシャルネットワークを経由して、私のユーザーに署名したい場合は? FacebookやGoogle Plusのような? JWTもそれを処理していますか? –

0

この投稿の目的は、(すでに回答したように)回答するのではなく、最終的にトピックに関する詳細情報を必要とする他の読者にもっと情報を与えることです。

これは非常に参考になるチュートリアルです。Implementing Vue.js 2.0 and Laravel 5.3 with CORS problem solution この1個と2個の次のクリップを確認してください。

あなたがここにhere

+0

あなたの答えはVue.jsですが、質問はAngularJsとLaravelです:)しかし、この情報に感謝 –

関連する問題