У меня есть проект, который имеет клиентскую часть (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, электронная почта и т. Д.), А также я хочу проверить, является ли токен действительным / безопасным для использования.
Так что это на самом деле то, что 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
Других решений пока нет …