Auth0 Laravel:验证令牌并获取用户信息

时间:2017-02-23 10:01:58

标签: php laravel auth0

我有一个拥有客户端(Angular 2)和API(Laravel 5.4)的项目。我想使用Laravel作为API,但我希望API受到来自Auth0的json令牌的保护。

因此,每当我向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 ect。),我还想检查令牌是否有效/安全使用。

1 个答案:

答案 0 :(得分: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' => 'taylor@laravel.com',
        'password' => 'my-password',
        'scope' => '',
    ],
]);

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

同样在Passport中,您可以创建Personal Access Tokens,然后通过

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

以下是Laravel创始人Taylor Otwell的Passport intro video