ما دو کاربر داریم قرض کنید با آی دی و نام های زیر
من آمدم کد زیر را نوشتم برای لاگین کردن کاربران و ویرایش اطلاعات کاربران
web.php
Route::group(['middleware' => 'auth', 'prefix' => 'user/panel'], function () {
Route::get('/', 'UserController@index')->name('user.panel');
Route::get('{user}/edit', 'UserController@edit')->name('user.panel.edit');
Route::get('/update', 'UserController@update')->name('user.panel.update');
});
فرض کنید کاربر با آی دی 1 با آدرس http://localhost:8000/user/panel/1/edit
آمد لاگین کرد و بعد با آدرس http://localhost:8000/user/panel/2/edit
می تواند اطلاعات حسن محمودی را هم ببیند و هم ویرایش کند.
دو روش هست یک اینکه اصلا با id در url کار نکنید و بجاش اطلاعات کاربر رو از همون اطلاعات شخصی که لاگین کرده بگیرید یعنی
auth()->user()
و روش دوم اینکه اگر خیلی اصرار دارید از روش خودتون استفاده کنید نیازه چک کنید مثلا ای دی شخصی که قرار ویرایش بشه و با ای دی شخصی که لاگین کرده یکی هست یا نه اگر بود اجازه داره اگر نبود اجازه نداره.
سلام مجدد
من از روش دوم استفاده کردم به ان شکل نوشتم نمیدونم منظ.رتون اینه؟
web.php
Route::middleware(['auth', 'checkLogin'])->prefix('user/panel')->group(function () {
بعد امدم توی Kernel.php
'checkLogin' => \App\Http\Middleware\CheckLogin::class,
CheckLogin.php
public function handle($request, Closure $next)
{
if (auth()->user()->id){
return $next($request);
}
}
هیچ چیز برای من اتفاق خاصی نیافتاد. نمی دونم شاید من اشتباه میکنم
سلام
شما باید Permision تعریف کنید یعنی فقط ادمین و خود اون کاربر بتونه به این صفحه دسترسی داشته باشه مثلا یه تابع بنویسید اگه user_group بالاتر از 10 یا user_id برابر بود با ایدی که در سشن ذخیره کردید اون وقت این صفحه را نمایش بده
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟