راکت

گرفتن توکن jwt و ارسال توسط axios

سلام من از blade برای پروژه ام استفاده میکنم. منتها برای ارسال فرم هام از api استفاده میکنم.

کجا باید توکن رو ذخیره و به axios پاس بدم؟

خودم فکر میکنم:
باید تو کوکی ها ذخیره کنم و تو تگ meta بیارمش
بعدش پاس بدم به فایل جی اس ام، اما این از امنیت کافی برخورداره؟ البته این اتفاق وقتی که کاربر لاگین کرده فقط اعمال میشه.


ثبت پرسش جدید
amir
amir
@jojocs68005 سال پیشمطرح شد
1

کاربر کار خاصی با توکن نمیتونه انجام بده چون توکن نیاز به secret key داره تا مقدار ذخیره شده داخلش دست پیدا کرد. مثل سیستم سشن و کوکی
Access-Control-Allow-Origin برای موقعی هست که سرور کلاینت با سرور بک اند متفاوت باشه. اگه کل اپلیکیشن روی یک سرور اجرا میشه نیازی به این کار نیست
لوکال استوریج که نوشتن و خوندنش آسون هست.
اگر هم روی کوکی ذخیره میکنی نوشتنش داخل لاراول نمیدونم چجوریه .. موقع خوندن کوکی ها تو جاوا اسپریپت از این استفاده کن:

function getCookiesObj(){
    const cookies = document.cookie.split(';');
    const cookiesArr = cookies.map(cookie => cookie.split('='));
    return Object.fromEntries(cookiesArr);
}

حسین شیری نژاد
حسین شیری نژاد
تخصص :programmer
@hosseinshirinegad985 سال پیشمطرح شد
1

سلام توکنو در 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 => {

})

amir
amir
@jojocs68005 سال پیشمطرح شد
0

بستگی داره. اگه از react استفاده میکنی توی state manager ذخیره کن.مثل redux. اگرنه کوکی یا localStorage


امیر حسین شریفی
امیر حسین شریفی
تخصص :Web Developer
@amirsharifi5 سال پیشمطرح شد
0

@jojocs6800
@hosseinshirinegad98
مرسی از پاسخ هاتون.
اول اینکه از vue دارم استفاده میکنم

لوکال استوریج امن هست؟ یا اصلا این توکن دست کاربر بیافته کار خاصی میتونی کنه؟

اگه من Access-Control-Allow-Origin هم تعیین کنم مورد امنیتی پیش میاد؟

چون من باید توکن رو پاس بدم به html بعد بدم به axios چون که از blade استفاده میکنم.


عرفان
عرفان
تخصص :Python
@erf5 سال پیشمطرح شد
1

سلام هر چی سمت کاربر باشه رو امنیتش نمی شه تضمین کرد یعنی هیچ وقت نباید به کاربر ( هکر اعتماد کرد )
لوکال استورج ،سشن استورج و... همه اینا با F-12 قابل نمایشن تو تب اپلیکیشن
اما به امنیت خاصی نیاز نداره اون توکن به درد کسی نمی خوره اگه بکند درست حسابی باشع


amir
amir
@jojocs68005 سال پیشمطرح شد
1

کاربر کار خاصی با توکن نمیتونه انجام بده چون توکن نیاز به secret key داره تا مقدار ذخیره شده داخلش دست پیدا کرد. مثل سیستم سشن و کوکی
Access-Control-Allow-Origin برای موقعی هست که سرور کلاینت با سرور بک اند متفاوت باشه. اگه کل اپلیکیشن روی یک سرور اجرا میشه نیازی به این کار نیست
لوکال استوریج که نوشتن و خوندنش آسون هست.
اگر هم روی کوکی ذخیره میکنی نوشتنش داخل لاراول نمیدونم چجوریه .. موقع خوندن کوکی ها تو جاوا اسپریپت از این استفاده کن:

function getCookiesObj(){
    const cookies = document.cookie.split(';');
    const cookiesArr = cookies.map(cookie => cookie.split('='));
    return Object.fromEntries(cookiesArr);
}

محمد عابدی
محمد عابدی
تخصص :Senior Web Developer
@abedim9105 سال پیشمطرح شد
1

@amirsharifi درود
کاری که شما میکنید غیر استاندارد نیست و تمامی سرویس های بزرگ هم اکسس توکن کلاینت قابل دسترس هست چون بالاخره یک پارامتر باید باشه سمت کلاینت که شما بخوای با استفاده از اون اعتبارسنجی بکنید.
اگر خیلی مسئله براتون مهمه میتونید زمان ایجاد توکن یوزر ایجنت کاربر رو ذخیره کنید و به کاربری که با یوزر ایجنت متفاوت از همون توکن استفاده میکنه شک کنید و بهش دسترسی ندید. بسته به سیاست های خودتون هر کاری قابل انجامه


amir
amir
@jojocs68005 سال پیشمطرح شد
1

اینم یه مقایسه از روش های مختلف ذخیره سمت کلاینت:
A Primer on the Different Types of Browser Storage


امیر حسین شریفی
امیر حسین شریفی
تخصص :Web Developer
@amirsharifi5 سال پیشمطرح شد
0

@jojocs6800
مرسی لطف کردین.
دوستان مرسی از پاسخ هاتوتن.


moh_asl22
moh_asl22
@mohasl225 سال پیشمطرح شد
1

سلام شاید با هش کردن خود مقدار لوکال استوریج بشه جلوی لو رفتن این قضیه رو گرفت یعنی مقدار برگشتی رو هش کرد بعد در زمان ارسال دیکیریپتش کرد


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام