<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                #### 創建策略 通過命令行創建策略,創建的策略在app/policies文件夾下. ~~~ php artisan make:policy UserPolicy ~~~ 我們定義一個方法,用于用戶更新時的權限驗證. ~~~ public function update(User $currentUser, User $user) { return $currentUser->id === $user->id; } ~~~ update 方法接收兩個參數,第一個參數默認為當前登錄用戶實例,第二個參數則為要進行授權的用戶實例。當兩個 id 相同時,則代表兩個用戶是相同用戶,用戶通過授權,可以接著進行下一個操作。如果 id 不相同的話,將拋出 403 異常信息來拒絕訪問。 使用授權策略需要注意以下兩點: 1. 我們并不需要檢查 $currentUser 是不是 NULL。未登錄用戶,框架會自動為其 所有權限 返回 false. 2. 調用時,默認情況下,我們 不需要 傳遞當前登錄用戶至該方法內,因為框架會自動加載當前登錄用戶(接著看下去,后面有例子). 接下來我們還需要在 AuthServiceProvider 類中對授權策略進行設置。AuthServiceProvider 包含了一個 policies 屬性,該屬性用于將各種模型對應到管理它們的授權策略上。我們需要為用戶模型 User 指定授權策略 UserPolicy。 在app/Providers/AuthServiceProvider.php文件中注冊策略. ~~~ protected $policies = [ \App\Models\User::class => \App\Policies\UserPolicy::class, //策略所應用的模型 ]; ~~~ 授權策略定義完成之后,我們便可以通過在用戶控制器中使用 authorize 方法來驗證用戶授權策略。默認的 App\Http\Controllers\Controller 類包含了 Laravel 的 AuthorizesRequests trait。此 trait 提供了 authorize 方法,它可以被用于快速授權一個指定的行為,當無權限運行該行為時會拋出 HttpException。authorize 方法接收兩個參數,第一個為授權策略的名稱,第二個為進行授權驗證的數據。 ~~~ $this->authorize('update', $user); ~~~ 這里 update 是指授權類里的 update 授權方法,$user 對應傳參 update 授權方法的第二個參數。正如上面定義 update 授權方法時候提起的,調用時,默認情況下,我們 不需要 傳遞第一個參數,也就是當前登錄用戶至該方法內,因為框架會自動加載當前登錄用戶。 ## 再舉例一個策略的場景 管理員可以對普通用戶進行刪除,但是管理員不能刪除自己. ~~~ class UserPolicy { use HandlesAuthorization; public function destroy(User $currentUser, User $user) { return $currentUser->is_admin && $currentUser->id !== $user->id; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看