Auth0 Laravel:验证令牌并获取用户信息
Posted
技术标签:
【中文标题】Auth0 Laravel:验证令牌并获取用户信息【英文标题】:Auth0 Laravel: Validate token and get user information 【发布时间】:2017-07-13 17:45:49 【问题描述】:我有一个项目,它有一个客户端 (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、电子邮件等),并且我想检查令牌是否有效/可以安全使用。
【问题讨论】:
没人知道这个?! 【参考方案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,
],
]);
这里是 Passport intro video,作者是 Laravel 的创建者 Taylor Otwell
【讨论】:
谢谢,我希望有人知道如何在创建的实例中执行此操作,否则我将不得不更改/添加很多东西。以上是关于Auth0 Laravel:验证令牌并获取用户信息的主要内容,如果未能解决你的问题,请参考以下文章
获取经过身份验证的用户 Laravel/Lumen Passport