سلام دوستان خسته نباشید
یه سوالی داشتم ببنید من الان میخوام با 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 هم یک توکن ایجاد و ذخیره میکنه
شما یک مسیرهای از قبل تعریف کردین که با میدلور توکن اطلاعات رو نمایش میده دیگه!
مثلا من به یک 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();
});
برای بقیه مسیرها هم همینجوره
دوست فرانت کارت باید توکن رو بگیره توی لوکال استورج یا هرجایی که دوست داره ذخیره کنه
بعدش به فرض کاربر روی ادرس پروفایل کلیک کرد ، برنامه نویس فرانت کار توی لود اون صفحه (mount) توکن رو برای سرور شما میفرسته اطلاعات کاربر رو میگیره و جایگزین value اینپوت ها یا تگ ها میکنه.
دوست فرانت کار (وب) شما باید اینا رو با فریمورک ها یا کتابخانه های جاوا اسکرپیتی مثه vue, react یا angular هندل کنه.
شما یک مسیرهای از قبل تعریف کردین که با میدلور توکن اطلاعات رو نمایش میده دیگه!
مثلا من به یک 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();
});
برای بقیه مسیرها هم همینجوره
سلام
برای کار با توکن در Api بهتره از laravel sanctum استفاده کنید.
متدهای احراز هویت و موارد امنیتی در سطح عالی کار شده.
توکن های ویژه برای دسترسی های خاص رو هم میتونید در با ability تعریف کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟