دوستان سلام
من به ی مشکل خوردم زمانی که کاربر پرداختش رو انجلم میده و بر میگرده با سایت (از طریق درگاه ملت ) سشن ها پاک میشن و کاربر خارج میشه از پنلش تا اینجا فهمیدم که مشکل از csrf هست و توی میدلویر VerifyCsrfToken آدرس url برگشت از درگاه رو گذاشتم اما باز هم این ایراد رو دارم.
اما اگر توی کانفیگ سشن ها مقدار samesite رو روی none بگذارم این مشکل حل میشه اما دیگه csrf کلا غیر فعال میشه برای سشن ها چکار کنم که بدون دستکاری samesite سشن ها غیر فعال نشن ؟
@hesammousavi
@ali.bayat
سلام اینکه کاربر بره وارد درگاه پرداخت بشه و بعد از درگاه پرداخت وارد وبسایت شما بشه چه ربطی به پاک شدن سشن شما داره اصلا ؟
@hesammousavi
این اتفاق میفته برام و کاربر از حساب کاربریش خارج میشه و دوباره تقاضای ورود میکنه و همچنین سبد خرید من با سشن هاست که سشن اون هم از بین میره
خودتون اگر زحمتی نیست چک کنید ممنون اگر عملیات رو هم کنسل کنید باز همون اتفاق میفته
ربکو
این مورد که شما می فرمایید که csrf کلا غیر فعال میشه و چک نمیشه صحیح نیست باز چک میشه. آیا اشتباه میکنم منو تصحیح کنید
سلام وقت بخیر. من هم دقیقا همین مشکل رو دارم. با درگاه ذرین پال چنین مشکلی ندارم. هم سش سبد خرید پاک میشه هم کاربر رو میندازه بیرون.
@yk5742g سلام مواردی که گفتید کاملا تنظیم شده ست. مشکل از جای دیگه ایه. قراره فردا تماس بگیرم با به پرداخت. اصلا خیلی بی معنیه این اتفاق.
اما اینگه فرمودید حتما اگر post هست @csrf ست کنین ، موقعی که داریم میریم به درگاه خوب csrf هست.ولی موقع برگشت که در اختیار ما نیست این مورد. شما دقیقا منظورتون کجا ست ؟ کجا میگید ست کنیم ؟
جناب @hesammousavi سلام شما نظری ندارید ؟ من قبلا با درگاه ملت کار کردم روی سه تا پروژه دیگه. هیچوقت این اتفاق نمی افتاد.
از طریق میدلور VerifyCsrfToken مقدار روت مورد نظر از لیست چک شدن خارج کنید.
protected $except = [
'payment/callback',
];
توی بازگشت انتظار نداشته باشین که مقدار user وجود داشته باشه چون درخواست از کلاینت کاربر ارسال نمیشه بلکه از طریق درگاه بانک ارسال میشه
@mehdi.mahdavi97 چرا از آروان استفاده می کنیم و به این مشکل خوردیم متاسفانه اگر راه حلی دارید ممنون میشم بگید
سلام. من هم همین مشکل رو داشتم و خیلی وقته دنبالش بودم.
شما وقتی میخواید برید به درگاه پرداخت یک ادرس callback میدید. دقیق یادم نیست ولی یا باید ادرس رو بدون www میدادید یا با www
یعنی این 2 مورد رو امتحان کنید:
https://www.test.com
https://test.com
یکی از این ها جواب داده بود برای من .امتحان کنید ممنون
@rabco
سلام
@kiyanakiyaee
ابر آروان ظاهرا اپشنی داره که کوکی ها رو کش میکنه
این مورد را غیرفعال کنید ( ما این مشکل رو داشتیم و پس از کلی بررسی همکاران این دلیل رو واسش پیدا کردن)
@mehdi.mahdavi97
مرسی مرسی مرسی دقیقا مشکل همین بود و با افزودن این سه خط کد درست شد
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
درود من هم چنین مشکلی داشتم با درگاه ملت و خب یسری از دوستان گفتن ادرس callback رو یا باید با www یا بدون اش بدیم به بانک که خب برا من کار نکرد این روش یا اینکه اون روت رو بدون csrf توکن کنیم که بازم کار نکرد برای من و من تنها کاری که تونستم کنم این بود که اون روت رو از میدلور auth بردارم و برسی کنم مقداری برگشتی وجود داره یا نه و اگر وجود داشت و مقدار resnumber برابر با مقدار توی جدول بود و پرداخت انجام شده بود از طریق رابطه کاربر رو بدست بیارم و لاگینش کنم و بقیه داستان
این کاری بود که من تونستم کنم امیدوارم بدردت بخوره.
مشکل حذف سشن (session) سبد خرید
طی آپدیت هایی که مرورگر ها ارائه کردن کوکی های نا امن پاک میشه پس این مورد رو خود مرورگر داره حذف میکنه و نه تقصیر درگاه پرداخته نه سرویس دهنده هاست و سرور، به متن زیر دقت کنید
کروم اعلام کرد در نسخه ۸۰ به بعد اقدام به اجرای یک سیستم طبقه بندی کوکیهای امن و پیش فرض خواهد کرد. برای کوکیهایی که مقدار دهی SameSite را انجام نداده باشند بصورت پیش فرض مقدار دهی SameSite=Lax را در نظر خواهد گرفت. و تنها کوکی هایی که بر اساس SameSite=None; Secure تنظیم شده باشند در زمینه با محتوای خارجی در اتصال امن (https) در دسترس خواهند بود. در نتیجه کوکیهایی که این شرایط را نداشته باشند مسدود شده و حذف می شوند.
پس از آن فایرفاکس نیز به این قانون پیوست و در نسخه های جدید این قوانین را اعمال کرده است.
برای حل این مشکل به صورت کلی در سایتهایی که از انجین آپاچی استفاده میکنند میتونید از تکه کد ذیل استفاده کنید در فایل htaccess (مثل وردپرس، جوملا و ... )
<ifmodule mod_headers.c="">
Header always edit Set-Cookie ^(.*)$ $1;Secure;SameSite=None
</ifmodule>
حل مشکل حذف سشن (session) بعد از برگشت درگاه پرداخت در لاراول
برای یکپارچگی کد و راحت بودن کار در فریم ورک لاراول بهتره تو خود تنظیمات لاراول این مشکل رو حل کنید کافیه فایل session.php در پوشه config رو باز کنید و مقدار samesite برابر none قرار بدید. تفاوت مقدارهای samesite به صورت ذیل است:
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟