当前位置: 首页 > 知识库问答 >
问题:

无法找到[Laravel\Passport\Client]的工厂

章松
2023-03-14

我有一个laravel应用程序与护照安装管理api认证。我试图写一些测试,但我无法创建一个客户端根据laravel上的文档。我已经谷歌了类似的SO答案,但他们都建议使用我正在做的setUp和tearDown方法。当我进行测试时

InvalidArgumentException 

Unable to locate factory for [Laravel\Passport\Client].

我怎样才能让它工作?

下面是我的代码。我已经包括了passport包中的客户机模型,我正在使用类似SO答案中建议的设置和拆卸方法。

我已经尝试了作曲家转储-自动加载php artisan配置:缓存

use Laravel\Passport\Passport;
use Laravel\Passport\Client;

... 

use RefreshDatabase;

protected function setUp(): void
{
    parent::setUp();
}

protected function tearDown(): void
{
    parent::tearDown();
}

public function testAPIEndpointFailsWhenNoParamIsSet()
{
    Passport::actingAsClient(
        factory(Client::class)->create(),
        ['*']
    );

    $response = $this->postJson('/api/endpoint', [
        'param' => ''
    ]);

    $response->assertStatus(401)
        ->assertJson(['message' => 'Unauthenticated.']);
}

共有1个答案

柯学
2023-03-14

护照客户工厂应该存在于出版...

如果没有。。。。让它成为你自己:

从:这里

use Laravel\Passport\Passport;
use Laravel\Passport\Client;

$factory->define(Client::class, function (Faker $faker) {
    return [
        'user_id' => null,
        'name' => $faker->company,
        'secret' => Str::random(40),
        'redirect' => $faker->url,
        'personal_access_client' => 0,
        'password_client' => 0,
        'revoked' => 0,
    ];
});
 类似资料:
  • 在设置passport之后,我配置并创建了一个控制器,用于管理注册登录和对资源的访问,以满足一般外部post请求。我不需要特定的客户。但当我尝试在注册或登录中创建令牌时: 错误是: 运行时异常:未找到个人访问客户端。请创建一个。在文件C:\xampp7中。1\htdocs\passport\vendor\laravel\passport\src\ClientRepository。php第94行堆栈

  • maven偶尔会抱怨,在构建另一个将特定依赖项作为依赖项的项目时,无法在本地存储库中找到在本地构建和打包的特定依赖项。我们得到如下错误: 未能在项目X上执行目标:无法解析项目X的依赖关系:未能在[存档存储库]中找到Y,已缓存在本地存储库中,在内部的更新间隔过去或强制更新之前,不会重新尝试解析-> 唯一可行的两件事是等待很长时间直到maven变得聪明起来,或者完全删除本地存储库。假定等待选项与前述更

  • 问题内容: 我想在laravel 5.2中使用Redis,但是却出现错误,例如找不到“ Predis \ Client”类,该如何解决。 问题答案: 首先将REDIS下载到您的系统(如果尚未安装)。 转到下载redis的文件夹,然后运行以下命令: make 转到您的项目目录并安装composer: 转到您的.env文件并添加队列驱动程序: 用于通过队列发送邮件。参见Doc。 并在您的终端运行中:

  • 我尝试使用 Websphere 8.5 完整配置文件将应用程序转换为 Liberty 配置文件,但我遇到了有关不兼容的问题。 无法找到初始上下文工厂 我知道班级的位置com.ibm.ws.ejb.thinclient_8.0.0.jar在完整的配置文件中,但我不能在Liberty配置文件中找到相关的,还有一件事,因为我正在做维护应用程序,所以班级要看看。 com . IBM . WebSphere

  • 前言 在 Laravel 中,实现基于传统表单的登陆和授权已经非常简单,但是如何满足 API 场景下的授权需求呢?在 API 场景里通常通过令牌来实现用户授权,而非维护请求之间的 Session 状态。在 Laravel 项目中使用 Passport 可以轻而易举地实现 API 授权认证,Passport 可以在几分钟之内为你的应用程序提供完整的 OAuth2 服务端实现。 首先我们可以先了解一下

  • 隐式授权 隐式授权类似于授权码授权,但是它只令牌将返回给客户端而不交换授权码。这种授权最常用于无法安全存储客户端凭据的 JavaScript 或移动应用程序。通过调用 AuthServiceProvider 中的 enableImplicitGrant 方法来启用这种授权: public function boot() { $this->registerPolicies(); Pa