2017-02-23 8 views
1

クライアント側(Angular 2)とAPI(Laravel 5.4)を持つプロジェクトがあります。私はAPIとしてLaravelを使用したいが、Auth0のjsonトークンによってAPIを保護したい。Auth0 Laravel:トークンの検証とユーザー情報の取得

私はLaravel(Angularから)にhttpリクエストを行うたびにリクエストを送信したユーザーのトークンを送信しています。

私はLaravelでこのコントローラを作りました:

<?php 
namespace App\Http\Controllers; 

use App\Http\Requests; 
use Illuminate\Http\Request; 
use Auth0\SDK\Auth0; 

class JWTVerificationController extends Controller 
{ 
    public function __construct(Request $request) { 
     $this->req = $request; 
     $auth0 = new Auth0(array(
      'domain'  => 'x', 
      'client_id'  => 'x', 
      'client_secret' => 'x', 
      'redirect_uri' => '' 
    )); 


    } 
} 

問題は、私はインスタンスで何かをする方法がわからないです、私はPHP/Laravelのための任意のAuth0のドキュメントを見つけることができません。 「ログイン」チュートリアルの他に

私はユーザーのデータ(app_metadata、user_metadata、emailなど)を取得したいと思います。トークンが有効かどうかを確認したいと思います。

+0

これは誰も知りません! – Arnold

答えて

1

これは実際にはLaravel Passportが対象です。

それを設定した後、あなたはthisのような要求をしていることがあります。また、パスポートにあなたはPersonal Access Tokensを作成することが

$http = new GuzzleHttp\Client; 

$response = $http->post('http://your-app.com/oauth/token', [ 
    'form_params' => [ 
     'grant_type' => 'password', 
     'client_id' => 'client-id', 
     'client_secret' => 'client-secret', 
     'username' => '[email protected]', 
     'password' => 'my-password', 
     'scope' => '', 
    ], 
]); 

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

、その後、あなたは

$response = $client->request('GET', '/api/user', [ 
    'headers' => [ 
     'Accept' => 'application/json', 
     'Authorization' => 'Bearer '.$accessToken, 
    ], 
]); 

経由authorizateここでテイラーOtwellによってPassport intro videoです、Laravelの作成者

+0

ありがとう、私は、作成されたインスタンス内でこれを行う方法を知っている人がいることを願っています。そうしないと、多くのものを変更/追加する必要があるからです。 – Arnold

関連する問題