راکت
حل شده

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

9 پاسخ

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

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

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

ثبت پرسش جدید

پاسخ‌ها

9
amir
amir
@jojocs6800
بهترین پاسخ

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

function getCookiesObj(){
    const cookies = document.cookie.split(';');
    const cookiesArr = cookies.map(cookie => cookie.split('='));
    return Object.fromEntries(cookiesArr);
}
حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

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

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

شاید پاسخ شما همین‌جا باشد

امیر حسین شریفی
امیر حسین شریفی
@amirsharifi

تخصص: Web Developer

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

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

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

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

عرفان
عرفان
@erf

تخصص: Python

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

محمد عابدی
محمد عابدی
@abedim910

تخصص: Senior Web Developer

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

amir
amir
@jojocs6800

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

امیر حسین شریفی
امیر حسین شریفی
@amirsharifi

تخصص: Web Developer

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

moh_asl22
moh_asl22
@mohasl22

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

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

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