سلام من از blade برای پروژه ام استفاده میکنم. منتها برای ارسال فرم هام از api استفاده میکنم.
کجا باید توکن رو ذخیره و به axios پاس بدم؟
خودم فکر میکنم:
باید تو کوکی ها ذخیره کنم و تو تگ meta بیارمش
بعدش پاس بدم به فایل جی اس ام، اما این از امنیت کافی برخورداره؟ البته این اتفاق وقتی که کاربر لاگین کرده فقط اعمال میشه.
کاربر کار خاصی با توکن نمیتونه انجام بده چون توکن نیاز به secret key داره تا مقدار ذخیره شده داخلش دست پیدا کرد. مثل سیستم سشن و کوکی
Access-Control-Allow-Origin برای موقعی هست که سرور کلاینت با سرور بک اند متفاوت باشه. اگه کل اپلیکیشن روی یک سرور اجرا میشه نیازی به این کار نیست
لوکال استوریج که نوشتن و خوندنش آسون هست.
اگر هم روی کوکی ذخیره میکنی نوشتنش داخل لاراول نمیدونم چجوریه .. موقع خوندن کوکی ها تو جاوا اسپریپت از این استفاده کن:
function getCookiesObj(){
const cookies = document.cookie.split(';');
const cookiesArr = cookies.map(cookie => cookie.split('='));
return Object.fromEntries(cookiesArr);
}
سلام توکنو در localstorag مرورگر ذخیرش کن
localStorage.setItem('access_token', value_token);
و موقع استفاده اینطوری به دستش میاری
var token = localStorage.getItem('access_token');
اینطوری هم حذفش کن
localStorage.removeItem('access_token');
و انیطوری به سرور پاسش بده
var token = localStorage.getItem('access_token');
axios.get('/api/v1/logout', {
headers: {
Accept: 'Application/json',
Authorization: 'Bearer ' + token
}
})
.then(res => {
})
بستگی داره. اگه از react استفاده میکنی توی state manager ذخیره کن.مثل redux. اگرنه کوکی یا localStorage
@jojocs6800
@hosseinshirinegad98
مرسی از پاسخ هاتون.
اول اینکه از vue دارم استفاده میکنم
لوکال استوریج امن هست؟ یا اصلا این توکن دست کاربر بیافته کار خاصی میتونی کنه؟
اگه من Access-Control-Allow-Origin هم تعیین کنم مورد امنیتی پیش میاد؟
چون من باید توکن رو پاس بدم به html بعد بدم به axios چون که از blade استفاده میکنم.
سلام هر چی سمت کاربر باشه رو امنیتش نمی شه تضمین کرد یعنی هیچ وقت نباید به کاربر ( هکر اعتماد کرد )
لوکال استورج ،سشن استورج و... همه اینا با F-12 قابل نمایشن تو تب اپلیکیشن
اما به امنیت خاصی نیاز نداره اون توکن به درد کسی نمی خوره اگه بکند درست حسابی باشع
کاربر کار خاصی با توکن نمیتونه انجام بده چون توکن نیاز به secret key داره تا مقدار ذخیره شده داخلش دست پیدا کرد. مثل سیستم سشن و کوکی
Access-Control-Allow-Origin برای موقعی هست که سرور کلاینت با سرور بک اند متفاوت باشه. اگه کل اپلیکیشن روی یک سرور اجرا میشه نیازی به این کار نیست
لوکال استوریج که نوشتن و خوندنش آسون هست.
اگر هم روی کوکی ذخیره میکنی نوشتنش داخل لاراول نمیدونم چجوریه .. موقع خوندن کوکی ها تو جاوا اسپریپت از این استفاده کن:
function getCookiesObj(){
const cookies = document.cookie.split(';');
const cookiesArr = cookies.map(cookie => cookie.split('='));
return Object.fromEntries(cookiesArr);
}
@amirsharifi درود
کاری که شما میکنید غیر استاندارد نیست و تمامی سرویس های بزرگ هم اکسس توکن کلاینت قابل دسترس هست چون بالاخره یک پارامتر باید باشه سمت کلاینت که شما بخوای با استفاده از اون اعتبارسنجی بکنید.
اگر خیلی مسئله براتون مهمه میتونید زمان ایجاد توکن یوزر ایجنت کاربر رو ذخیره کنید و به کاربری که با یوزر ایجنت متفاوت از همون توکن استفاده میکنه شک کنید و بهش دسترسی ندید. بسته به سیاست های خودتون هر کاری قابل انجامه
اینم یه مقایسه از روش های مختلف ذخیره سمت کلاینت:
A Primer on the Different Types of Browser Storage
سلام شاید با هش کردن خود مقدار لوکال استوریج بشه جلوی لو رفتن این قضیه رو گرفت یعنی مقدار برگشتی رو هش کرد بعد در زمان ارسال دیکیریپتش کرد
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟