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

api laravel

سلام دوستان خسته نباشید
یه سوالی داشتم ببنید من الان میخوام با api لاگین کنم خب و میام ایمیل و پسورد شخص رو چک میکنم اگه درست بود بعد میام و یک توکن براش تولید میکنم و این توکن رو هرجایی که محدودیت دسترسی داشت توسط هدر ها ارسال میکنم سوال اول اینکه تااینجا رو درست متوجه شدم ؟ و سوال دوم اینه که خب الان کاربر لاگین شده و من توکنش رو ایجاد کردم و در دیتابیس ذخیره کردم خب حالا من چجوری باید به کسی که فرانت رو داره طراحی میکنه بگم بفرما این توکن و این رو توی هدر ها قرار بده
این کدهام

 public function login(Request $request)
    {
        $credentials = $request->validate([
            'email' => ['required', 'email'],
            'password' => ['required'],
        ]);

        Auth::attempt($credentials);
        if(auth()->check())
        {
            return response()->json(auth()->user()->generateToken(),200);
        }
        $msg = 'اطلاعات شما غلط است';
        return response()->json($msg,401);
    }

generateToken هم یک توکن ایجاد و ذخیره میکنه


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

شما یک مسیرهای از قبل تعریف کردین که با میدلور توکن اطلاعات رو نمایش میده دیگه!

مثلا من به یک Api لاگین دارم که username و password رو بصورت post به این مسیر میفرستم.

https://example.com/login

این مسیر => پشت صحنه به یک کنترلر و یک متد وصله و اگر اطلاعات درست باشه یک توکن برمیگردونه (مثلا همون کدهای خودت)
برنامه نویس فرانت کار این توکن رو میگیره و با یک درخواست دوباره به مسیر دیگه ی اطلاعات کاربر رو میگیره و میریزه توی تگ های html

https://example.com/v1/api/user

این مسیر هم با میدلور Api لاراول هندل میشه اگر توکن توی هدر درخواست یا همراه درخواست بود اطلاعات کاربر رو نمایش میده!

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

برای بقیه مسیرها هم همینجوره


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

دوست فرانت کارت باید توکن رو بگیره توی لوکال استورج یا هرجایی که دوست داره ذخیره کنه

بعدش به فرض کاربر روی ادرس پروفایل کلیک کرد ، برنامه نویس فرانت کار توی لود اون صفحه (mount) توکن رو برای سرور شما میفرسته اطلاعات کاربر رو میگیره و جایگزین value اینپوت ها یا تگ ها میکنه.

دوست فرانت کار (وب) شما باید اینا رو با فریمورک ها یا کتابخانه های جاوا اسکرپیتی مثه vue, react یا angular هندل کنه.


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

شما یک مسیرهای از قبل تعریف کردین که با میدلور توکن اطلاعات رو نمایش میده دیگه!

مثلا من به یک Api لاگین دارم که username و password رو بصورت post به این مسیر میفرستم.

https://example.com/login

این مسیر => پشت صحنه به یک کنترلر و یک متد وصله و اگر اطلاعات درست باشه یک توکن برمیگردونه (مثلا همون کدهای خودت)
برنامه نویس فرانت کار این توکن رو میگیره و با یک درخواست دوباره به مسیر دیگه ی اطلاعات کاربر رو میگیره و میریزه توی تگ های html

https://example.com/v1/api/user

این مسیر هم با میدلور Api لاراول هندل میشه اگر توکن توی هدر درخواست یا همراه درخواست بود اطلاعات کاربر رو نمایش میده!

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

برای بقیه مسیرها هم همینجوره


حسن حکمتی
تخصص : برنامه نویس وب و بلاکچین
@hekmati 3 سال پیش مطرح شد
0

سلام
برای کار با توکن در Api بهتره از laravel sanctum استفاده کنید.
متدهای احراز هویت و موارد امنیتی در سطح عالی کار شده.
توکن های ویژه برای دسترسی های خاص رو هم میتونید در با ability تعریف کنید.


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

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