2017-02-23 67 views
1

我有一个具有客户端(Angular 2)和API(Laravel 5.4)的项目。我想使用Laravel作为API,但我希望API可以通过Auth0的json令牌来保护。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

$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); 

此外,在护照可以创建Personal Access Tokens,然后通过泰勒Otwell通过

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

这里是Passport intro video authorizate ,Laravel的创造者

+0

谢谢,我希望有人知道如何在创建的实例中执行此操作,否则我将不得不更改/添加如此多的内容。 – Arnold

相关问题