Laravel 应用程序在测试环境早期提升

Laravel app boostraps early in testing environment

通常,应用程序正在 bootstrapped after request being created. But in a test environment it happens before 创建请求。

这导致 socialiteproviders/manager 隐式创建 request here, thinking it already exists. This request doesn't get used, and the other one 之后创建。

因此,我无法使用 withSession helper 伪造会话数据。因为它改变了为后面的请求创建的会话。 SocialiteProviders 的提供者总是得到空会话。

如果我禁用引导它 here, the first error I get is at this line,因为应用程序还没有被引导。

谁的错?以及如何解决?同时你能想到任何解决方法吗?

P.S。更多详情 here.

好吧,如果我必须回答谁有错,我会说是 socialiteproviders/manager,因为它假设在引导应用程序时已经创建了请求。这是 the solution 我的看法。

要使用它,您需要添加

{
    "type": "vcs",
    "url": "https://github.com/x-yuri/Manager"
}

composer.jsonrepositories 参数。做

$ composer require 'socialiteproviders/manager=dev-testing-boot as 2.2.1'

不过请注意,使用额外的存储库会减慢 composer 速度。