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

گرفتن اطلاعات user با api

سلام
من یه درخواست ajax میزنم به سمت سرور که اطلاعات یوزر رو بگیرم و با json برگردونم
ولی پیغام unauthorized میده بهم انگار یوزر لاگین نشده

public function getInfo($course_id)
    {
        $id = auth()->user()->id;
        auth()->loginUsingId($id);
        $courseInfo = Course::where('id',$course_id)->firstOrFail();
        $user = Auth::user();
        $userInfo = User::where('id',$user->id)->firstOrFail();
        return response()->json(['courseInfo'=> $courseInfo , 'userInfo'=> $userInfo]);
    }

ولی وقتی مثلا مینویسم:

auth()->loginUsingId(1);

اوکی میشه..ینی وقتی که ایدی کاربر رو به طور مستقیم میدم
میشه راهنمایی کنید؟


ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش آپدیت شد
0

دوست عزیز

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

حالا برای رفع این مشکل یک راه داری که بیای یک روت تویی Web.php تعریف کنی نه Api.php
و داده ها بعلاوه csrf توکن رو همراه درخواستت بصورت post بفرستی و از اون تابع auth استفاده کنی.

  • چرا از Api برای درخواست های ajax در سایت استفاده نکنی چون هرکسی میتونه اون توکن رو از سیستم کاربر بدست بیاره و هردرخواستی به اسم اون کاربر بزنه
  • چرا متد روت رو بذاری post چون یک csrf میتونی کنارش استفاده کنی که مطمئن بشی سایت خودته
  • و تویی دریافتی کنترلرت حتمن چک کن که داده های ajax داری میگیری .

developer
تخصص : برنامه نویس
@developer 5 سال پیش مطرح شد
0

از jwt استفاده کنید


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

@alirezasafdari

Jwt یک روش هست که همین api_token رو همراه درخواست باید ارسال کنه


محمد
@mohammadhs 5 سال پیش مطرح شد

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

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