Laravel测试Passport :: actingAs($ user)使用路由?

时间:2019-06-09 15:50:53

标签: laravel-5 phpunit laravel-passport

我有自定义护照用户登录验证(我在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请求,则自定义控制器已正确处理了该请求,但是当我在phpunit测试中使用Passport::actingAs($user);时却没有。 Passport::actingAs();是使用路由还是通过其他方式获取身份验证令牌?

1 个答案:

答案 0 :(得分:0)

您应该能够使用

获取身份验证令牌
$this->actingAs($user, 'api');