【问题标题】:Laravel test Passport::actingAs($user) use routes?Laravel 测试 Passport::actingAs($user) 使用路由?
【发布时间】:2019-10-24 05:51:49
【问题描述】:

我有自定义护照用户登录验证(我在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);
        }
    }
}

如果我向domain.com/oauth/token 发出手动POST 请求,自定义控制器会正确处理,但是当我在phpunit 测试中使用Passport::actingAs($user); 时不会。这个Passport::actingAs();是使用路由还是有其他方式获取认证token?

【问题讨论】:

    标签: laravel-5 phpunit laravel-passport


    【解决方案1】:

    您应该能够使用

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

    【讨论】:

    • 我知道,我在测试中使用Passport::actingAs() 和原始Passport 配置。但我需要测试的是我的新自定义Passport 端点。我仍在寻找我的解决方案,但我认为我需要构建自己的助手并将令牌附加到每个测试请求。
    • @Alexd2 这是不久前的,让我检查一下我的代码,我会告诉你我是如何工作的
    猜你喜欢
    • 2019-10-16
    • 2019-05-09
    • 2019-09-20
    • 2019-11-15
    • 2017-05-23
    • 2018-08-05
    • 2014-09-28
    • 2019-04-26
    • 1970-01-01
    相关资源
    最近更新 更多