سلام دوستان
من یک پروژه با لاراول و vuejs دارم که restful و به عبارتی از هم جدا هستن
سوالم اینه که الان نحوه ی پیاده سازی اینطوریه که تو سمت vuejs بعد از اینکه کاربر اطلاعات لاگینش رو وارد کرد و به api درخواست احراز هویت داد api یک token , refreshtoken بهش برمیگردونه بعد vue میاد اینا رو تو localStorage ذخیره میکنه و هر وقت token منقضی شد refreshtoken ذخیره شده رو میفرسته به api و یک توکن جدید میگیره و ...
شدیدا نگران اینم که این روش امن هست یا نه ؟؟
کلی سرچ کردم خیلی گفتن refreshtoken فقط برای اپ های موبایلی امن است نه اپ های وبی ؟؟
و اینکه اگر استفاده از refreshtoken درسته ، این refreshtoken توکن کجا باید ذخیره شه ؟؟ تو localStorage یا cookie ??
جواب سوال خودمو خودم میدم :)
استفاده از رفرش توکن به شدت دردسر ساز است و یک تحلیل عمیقی نیاز داره
بهترین روش استفاده از httponly cookie است که هم مشکلات xss واستون پیش نمیاد همم اگر از لاراول و ناکست استفاده میکنید پکیج sanctum کاملا این روش رو پیاده سازی کرده و فقط کافیه نصبش کنید
سلام دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨
سوالات شما در مورد امنیت احراز هویت و استفاده از توکنها در ارتباط با وب بسیار مهم هستن
استفاده از Refresh Token:
استفاده از Refresh Token یک روش معمول برای افزایش امنیت در احراز هویت در وبه و نه فقط برای اپهای موبایل. با استفاده از Refresh Token، شما میتونی از جلوگیری از توکنهای اکسپایر شده و دسترسی مداوم کاربران به سیستم اطمینان حاصل کنی.
کجا ذخیره کردن Refresh Token:
ذخیره Refresh Token مهمه و معمولاً بهتر است آن را در یک مکان امن نگه داری. میتونی از یکی از دو مکان زیر برای ذخیره Refresh Token استفاده کنید:
LocalStorage: از اونجایی که LocalStorage قابل دسترسی توسط کدهای JavaScript در مرورگره، اگر شما Refresh Token را در LocalStorage ذخیره کنی ، باید مطمئن بشی که کدهای JavaScript کاربر متخصص به کد هستن و نمیتونن به آن دسترسی پیدا کنند. همچنین مطمئن شید که از مکانیسمهای امنیتی دیگر مانند Content Security Policy (CSP) استفاده میکنید .
Cookie: استفاده از کوکیها (Cookies) نیز معمولعه . با استفاده از تنظیمات امنیتی صحیح برای کوکیها (مانند تنظیم سطح HttpOnly و Secure)، میتونی از اونها به عنوان مکانی امن برای ذخیره Refresh Token استفاده کنی . همچنین، میتونی از کتابخانههایی مانند js-cookie
برای مدیریت کوکیها در JavaScript استفاده بکنی .
انتخاب بین LocalStorage و کوکیها به حداکثر میزان به نیازها و راحتیهای پروژه شما بستگی داره . هر دوی این روشها امکانات و چالشهای خودشو دارن و باید با توجه به نیازهای امنیتی پروژه و دانش فنی شما انتخاب بشن . همچنین برای افزایش امنیت، معمولاً از HTTPS برای ارتباطات ایمن استفاده میشن.
امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟