Auth0 Laravel: проверка токена и получение информации о пользователе

У меня есть проект, который имеет клиентскую часть (Angular 2) и API (Laravel 5.4). Я хочу использовать Laravel в качестве API, но я хочу, чтобы API был защищен токеном json от Auth0.

Поэтому, когда я делаю http-запрос в Laravel (из Angular), я отправляю токен пользователя, который делает запрос.

Я сделал этот контроллер в 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'  => ''
));}
}

Проблема в том, что я не знаю, как что-то сделать с экземпляром, я не могу найти документацию Auth0 для PHP / Laravel. Помимо учебника «Логин».

Итак, я хочу получить данные пользователя (например, app_metadata, user_metadata, электронная почта и т. Д.), А также я хочу проверить, является ли токен действительным / безопасным для использования.

1

Решение

Так что это на самом деле то, что Laravel Passport для.

После настройки у вас могут появиться такие запросы, как этот:

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

Вот Паспорт вступительное видео Тейлор Отвелл, создатель Laravel

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]