第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何限制用戶只能查看自己的個(gè)人資料

如何限制用戶只能查看自己的個(gè)人資料

PHP
梵蒂岡之花 2022-07-29 16:33:46
我有一個(gè)視圖(resources/view/front/auth/profile.blade.php),我在web.php文件中的路線是:Route::get('/profile/{user}','UserController@edit')    ->name('profile')    ->middleware('profilecheck');我的問題是,當(dāng)用戶登錄并被重定向到他們自己的個(gè)人資料頁(yè)面 ( http://exmaple.com/profile/2) 時(shí),他/她可以將 URL 更改為http://exmaple.com/profile/3并查看其他用戶的個(gè)人資料。我想使用中間件檢查帶有 URL 參數(shù)的經(jīng)過身份驗(yàn)證的用戶 ID {user}。$user->id遺囑傳給了,{user}但我不知道如何。中間件UserProfile.php:<?phpnamespace App\Http\Middleware;use App\User;use Closure;class UserProfile{    /**     * Handle an incoming request.     *     * @param  \Illuminate\Http\Request  $request     * @param  \Closure  $next     * @return mixed     */    public function handle($request, Closure $next)    {        // $request->user()->id        // Auth::user()->id        return $next($request);    }}
查看完整描述

3 回答

?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以簡(jiǎn)單地通過從 URL 中刪除用戶 ID 來保護(hù)路由,而是通過身份驗(yàn)證會(huì)話獲取它。


因此,您的路線簽名應(yīng)該來自:


Route::get('/profile/{user}', 'UserController@edit')->name('profile');

對(duì)此:


Route::get('/profile', 'UserController@edit')->name('profile');

因此,在您的控制器中,而不是從請(qǐng)求中獲取用戶 ID:


public function edit(Request $request)

{

     $user = User::findOrFail($request->id);

     // ...

}

您可以User通過Auth外觀登錄:


use Illuminate\Support\Facades\Auth;


public function edit(Request $request)

{

     $user = Auth::user();

     // ...

}

或者只是auth()幫手:


public function edit(Request $request)

{

     $user = auth()->user();

     // ...

}

這樣,您就可以屏蔽 URL 以避免惡意用戶做他/她不應(yīng)該做的事情。


查看完整回答
反對(duì) 回復(fù) 2022-07-29
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

// Controller 

 public function index()

    {

        if (Auth::check() && Auth::user()->role->id == 2) {

            return view('author.setting.settings');

        } else {

            Toastr::info('you are not authorized to access', 'Info');

            return redirect()->route('login');

        }

    }


// Route 

Route::group(['as'=>'user.','prefix'=>'user','namespace'=>'Author','middleware'=>['auth','user']], function (){


    Route::get('/setting','SettingsController@index')->name('settings.settings');


});


查看完整回答
反對(duì) 回復(fù) 2022-07-29
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊

你需要做這樣的事情。


你的路線


Route::get('/profile', [

    'uses' => 'UserController@profile',

    'middleware' => 'profilecheck'

]);

你的中間件


class CheckUserMiddleware

{    

  public function handle($request, Closure $next)

  {


    if(!auth()->user()) {

        return redirect()->route('login');

    }


    return $next($request);

  }

}


查看完整回答
反對(duì) 回復(fù) 2022-07-29
  • 3 回答
  • 0 關(guān)注
  • 195 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)