heather
4 سال پیش توسط heather مطرح شد
3 پاسخ

مشکل در احراز هویت در api

سلام دوستان...
من می خواستم به همون روش laravel.com/security/api auth یک سیستم احراز هویت ساده پیاده کنم .فقط در اونجا یا همان دوره ی laravel این سایت یک میدلور auth هم برای روت های معمولی و هم برای روت های api استفاده شده :auth:api که در اونجا اشاره کرده که اگر کاربر لاگین نبود ریدایرکت بشه به روت login/ واسه روت های معمولی که جواب میده ولی برای روت api مال من ریدایرکت نمیشه به روتی که من نوشتم.هر چند خودش گفته که بهتره کلا از laravel passport برای اینکار استفاده بشه.من فقط تمرینی می خوام اینکارو بکنمم.

Route::post('/login','Api\Auth\ApiTokenController@login');

فقط وقتی inspect می گیرم این پیغام unautheicate رو بهم نشون میده.نمیشه یک middleware دیگر بسازم و اونو تعریف کنم واسه روت های api/\؟ که بگم ریدایرکت بشن به /api/login .مثال های داخل اینترنت هم بعضی هاشون middleware درست کرده بودند ولی در مال اونا فقط یک پیغام رسپانس داده می شد! من تازه وارد مبحث api شدم.
می خوام یک سایت laravel + vue.js spa بسازم تمرینی.که مثلا از کامپونتم یوزرها رو از روت api بگیره ولی فیلتری باشه دیگه اون فیلتر منو ریدایرکت کنه به صفحه ی مخصوص auth api (حالا نمیدونم اینکارو می کنند یا نه برنامه نویسای دیگه) بعد لاگین اطلاعات یوزر به همراه اون توکن که برای هر یوزر ساخته شده برگرده بعد تو روت های دیگم رو. +?token کنم و درخواست مثلا get بفرستم به روت api دیگه . در اون controller چک کنم که اون توکنی که فرستادم همونیه که واسه من در دیتابیس ذخیره شده اگه اون بود ...... راه حلتون رو بگین ممنون میشم...


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
0

دوست عزیز برای api که نباید شما رو به شکل خودکار ریدایرکت کنه بهش میگن api شما با درخواست ajax بهش درخواست میدید اگر پیام unautheicate رو به عنوان پاسخ برگردوند با vue.js باید کاربر رو منتقل کنید به روت login که در vue router تعریف کردید


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش مطرح شد
1

همانطور که اقا حسام گفتن شما با vue درخواست ایجکس میدین به روت مد نظرتون و اگر اطلاعات بازگشتی unautheicate بود در vue کاربر رو به صفحه لاگین هدایت میکنی و در ادامه شما فقط روی روت های مدنظرت که لاگین نیاز دارن میدلور auth:api ست میکنی و همراه درخواست ایجکس یا تویی هدر درخواستت توکن رو میفرستی سمت روتی که میدلور براش ست شده ، لاراول خودش چک میکنه اگر این توکن وجود داشت کاربر رو لاگین فرض میکنه و اجازه دسترسی رو میده. همین.


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

کلیه پاسخ (Response) های برگشتی از یک API از نوع jSon هستند و معمولا ریسپانس کد سری ۲۰۰ یا ۴۰۰ رو دارند

  • ۲۰۰ برای عملیات های موفق
  • ۴۰۰ برای انواع خطا (شامل احراز هویت و Authorization و ...)

اگر قرار بشه شما ریدایرکت بشید: نوع ریسپانس کدتون میاد تو دسته ۳۰۰ و در کل API نباید کاربر رو ریدایرکت کنه.


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

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