gpt4 book ai didi

php - 从 Wordpress 内部检查 Laravel 上的经过身份验证的用户?

转载 作者:可可西里 更新时间:2023-11-01 12:39:44 27 4
gpt4 key购买 nike

这是一个奇怪的。

我有两个网站,一个由 Laravel (5.3) 驱动,一个由 Wordpress 驱动。

Laravel 存在于 portal.example.com

Wordpress 存在于 example.com

我正在尝试检查哪个用户当前已从 Wordpress 站点登录到 Laravel 站点。

我将 Laravel 设置为在 session 中使用 cookie 驱动程序,并将 cookie 域设置为 .example.com,这样我现在可以从 Wordpress 站点的任何位置看到这个 cookie。

在 wordpress 头文件(或 wp-load.php 文件或 functions.php 文件,我尝试了很多地方但遇到了同样的问题)的顶部,我包含了以下内容...

require $_SERVER['DOCUMENT_ROOT'].'/../laravel/bootstrap/autoload.php';
$laravel = require $_SERVER['DOCUMENT_ROOT'].'/../laravel/bootstrap/app.php';

$laravel->make('Illuminate\Contracts\Http\Kernel')
->handle(Illuminate\Http\Request::capture());

if (Auth::check()) {
var_dump(Auth::user()->id);
} else {
var_dump(false);
}

现在,每当我登录 Laravel 站点时,我都可以转到 example.com,并在页面顶部向上显示我的 Laravel 用户 ID 当前已成功进行 var_dump。

但是,一旦我访问 example.com/other-pages/,它就是 var_dumping false。

我知道随着网站继续加载,它仍在寻找我需要的两个文件,如果我将它们更改为无意义的文件名,网站就会死掉。我什至可以 var_dump($laravel) 并得到一大堆看起来像 Laravel 的东西。

有没有人知道这里会发生什么?

编辑:

我注意到的第一件事是在这不起作用的页面上有所不同,如果我 var_dump($laravel)... 我得到...

protected 'routeResolver' => null

接近尾声而不是...

protected 'routeResolver' => 
object(Closure)[805]
...

编辑 2:

这里有一点进步。

如果我这样做...

$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle( $request = Illuminate\Http\Request::capture());

var_dump($response);

我可以看到这些其他页面上的响应是 Laravel 404 页面,所以它遇到了错误并且从未返回我的用户。

我可以通过将每个 wordpress 域添加到我的 Laravel 路由文件来“修复”它,但这只是,哈哈。

有什么办法解决这个问题吗?

最佳答案

制作一个名为 WordpressMiddlware 的中间件,并在每个请求中制作它:

PHP

public function handle($request, Closure $next)
{
return $request->has("from_wordpress") ? redirect("PATH_TO_AUTH") : $next($request);
}

在 WordPress 中:

PHP

$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle( $request = Illuminate\Http\Request::capture());
$response->merge(["from_wordpress" => true]);

现在来自 wordpress 的每个请求都将被重定向到所需的路径,您不会得到 404。

关于php - 从 Wordpress 内部检查 Laravel 上的经过身份验证的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41813124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com