REST API request between domain and subdomain
پاسخ ها: 1
2 سایت example.com و sub.example.com وجود دارد. هر دو سایت در وردپرس هستند. سایت sub.example.com یک حساب شخصی برای کاربران دارد. سایت example.com حساب کاربری ندارد. دادههای بین سایتها در طول هر عملیاتی با اعتبارنامهها، از جمله هنگام ورود به حساب خود، همگامسازی میشوند. وظیفه ای وجود دارد که در سایت example.com متوجه شوید که کاربر در حال حاضر در سایت sub.example.com مجاز است. من از طریق یک مسیر سفارشی REST API درخواست میکنم، اما wordpress در پاسخ به wp_get_current_user() 0 را برمیگرداند. همانطور که متوجه شدم، شما باید درخواست را تأیید کنید. برای مجوز، من در حال حاضر این راه حل را می بینم:
- کوکی ها را برای example.com در دسترس قرار دهید:
define('COOKIE_DOMAIN', '.example.com');
define('COOKIEPATH', '/');
- در سایت sub.example.com ما کد (نه بهترین راه) را برای صدور یک کد nonce قرار می دهیم:
add_action('init', function() {
if (isset($_GET['secret_token']) && $_GET['secret_token'] === 'sdfus8689yhj3hlwiuhey98wyewhuiehiw8932y') {
echo wp_create_nonce( 'wp_rest' );
exit;
}
}
- در example.com ما کد nonce را به این صورت درخواست می کنیم:
$cookies = $_COOKIE;
$response = wp_remote_get('https://sub.example.com/?secret_token=ksdfus8689yhj3hlwiuhey98wyewhuiehiw8932y', array(
'cookies' => $cookies,
));
و با کد nonce دریافتی ما در حال حاضر درخواست را با موفقیت اجرا می کنیم.
من می دانم که این طرح خیلی زیبا نیست، اما چقدر این طرح ایمن است؟ یا راه حل بهتری هست؟
اجازه دهید فوراً روشن کنم که حتی با فعال بودن همگامسازی، هنگام ورود به حساب کاربری در sub.example.com، کاربر در وبسایت example.com غیرمجاز باقی میماند.
این مورد استفاده می شود اما کار نمی کند، کاربر در example.com وارد نشده است
https://wordpress.stackexchange.com/questions/130753/how-to-share-cookies-and-sessions-between-domain-and-subdomain
مشاهده پاسخ های این مطلب
———————————————
این مطلب از سایت انجمن وردپرس گردآوری شده است و کلیه حقوق مطلق به انجمن وردپرس می باشد در صورت مغایرت و یا بروز مشکل اطلاع دهید تا حذف گردد
منبع: انجمن وردپرس