Wordpress 내부에서 Larabel에서 인증된 사용자를 확인하시겠습니까?
여기 이상한 게 있어요.
Larabel(5.3)과 Wordpress(5.3)가 제공하는 두 개의 웹사이트를 가지고 있습니다.
Laravel은 portal.example.com에 존재합니다.
Wordpress는 example.com에 있습니다.
워드프레스 사이트에서 현재 라라벨 사이트에 로그인하고 있는 사용자를 확인하려고 합니다.
세션용 쿠키 드라이버를 사용하도록 Larabel을 설정하고 쿠키 도메인을 .example.com으로 설정하여 Wordpress 사이트 어디에서나 이 쿠키를 볼 수 있도록 했습니다.
워드프레스 헤더파일(또는 wp-load)의 선두에 있습니다.php 파일 또는 함수.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_val'd로 정상적으로 표시됩니다.
그러나 example.com/other-pages/에 접속하면 var_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 페이지이므로 오류가 발생하여 사용자를 반환하지 않았습니다.
모든 워드프레스 도메인을 Larabel 루트 파일에 추가하여 수정할 수 있지만, 그건 너무 지저분해요.
이 문제를 해결할 방법이 없을까요?
WordpressMiddlware라는 미들웨어를 만들고 모든 요청에서 만듭니다.
PHP
public function handle($request, Closure $next)
{
return $request->has("from_wordpress") ? redirect("PATH_TO_AUTH") : $next($request);
}
워드프레스:
PHP
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle( $request = Illuminate\Http\Request::capture());
$response->merge(["from_wordpress" => true]);
이제 워드프레스로부터의 모든 요청은 원하는 경로로 리다이렉트되며 404는 표시되지 않습니다.
언급URL : https://stackoverflow.com/questions/41813124/check-authenticated-user-on-laravel-from-inside-wordpress
'programing' 카테고리의 다른 글
JSON 파일을 통해 payload를 curl로 전달하려면 어떻게 해야 합니까? (0) | 2023.03.20 |
---|---|
WordPress는 계속해서 index.php 및 .htaccess 파일을 만들고 사용 권한을 0444로 변경합니다. (0) | 2023.03.20 |
AngularJs 서비스에서 사용자 지정 이벤트를 생성하는 방법 (0) | 2023.03.20 |
MongoDB에서 findAndModify와 업데이트의 차이점은 무엇입니까? (0) | 2023.03.20 |
호버에 다른 스타일 구성 요소 대상 지정 (0) | 2023.03.20 |