Тест Laravel Passport :: actAs ($ user) использует маршруты? - PullRequest
0 голосов
/ 09 июня 2019

У меня есть пользовательская проверка логина для паспорта (я сделал это после this ), поэтому я делаю свой пользовательский /oauth/token с этим маршрутом:

/routes/auth.php

Route::post('/oauth/token', [
    'uses' => 'Auth\CustomAccessTokenController@issueUserToken'
]);

/app/controllers/auth/CustomAccessTokenController.php

namespace App\Http\Controllers\Auth;

use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Psr\Http\Message\ServerRequestInterface;

class CustomAccessTokenController extends Controller
{
    public function issueUserToken(ServerRequestInterface $request)
    {
        $httpRequest = request();

        if ($httpRequest->grant_type == 'password') {
            $user = User::where('email', $httpRequest->username)->first();
            return $this->issueToken($request);
        }
    }
}

Если я сделаю ручной POST, запрос к domain.com/oauth/token правильно обрабатывается пользовательским контроллером, но когда я использую Passport::actingAs($user); в тесте phpunit, нет.Passport::actingAs(); использует маршруты или имеет другой способ получить токен аутентификации?

1 Ответ

0 голосов
/ 10 июня 2019

Вы сможете получить токен аутентификации, используя

$this->actingAs($user, 'api');
...