<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                認證可以用與緩存和 session 功能相同的方法擴展。再一次的,使用我們已經熟悉的 extend 方法: ~~~ Auth::extend('riak', function($app) { // 返回 Illuminate\Contracts\Auth\UserProvider 的實現 }); ~~~ UserProvider 實現只負責從永久存儲系統抓取 Illuminate\Contracts\Auth\Authenticatable 實現,存儲系統例如: MySQL 、 Riak ,等等。這兩個接口讓 Laravel 認證機制無論用戶數據如何保存或用什么種類的類來代表它都能繼續運作。 讓我們來看一下 UserProvider contract : ~~~ interface UserProvider { public function retrieveById($identifier); public function retrieveByToken($identifier, $token); public function updateRememberToken(Authenticatable $user, $token); public function retrieveByCredentials(array $credentials); public function validateCredentials(Authenticatable $user, array $credentials); } ~~~ retrieveById 函數通常接收一個代表用戶的數字鍵,例如:MySQL 數據庫的自動遞增 ID。這方法應該取得符合 ID 的 Authenticatable 實現并返回。 retrieveByToken 函數用用戶唯一的 $identifier 和保存在 remember_token 字段的「記住我」 $token 來取得用戶。跟前面的方法一樣,應該返回 Authenticatable 的實現。 updateRememberToken 方法用新的 $token 更新 $user 的 remember_token 字段。新 token 可以是在「記住我」成功地登錄時,傳入一個新的 token,或當用戶注銷時傳入一個 null。 retrieveByCredentials 方法接收當嘗試登錄應用程序時,傳遞到 Auth::attempt 方法的憑證數組。這個方法應該接著「查找」底層使用的永久存儲,找到符合憑證的用戶。這個方法通常會對 $credentials['username'] 用「 where 」條件查找。 并且應該返回一個 UserInterface 接口的實現。這個方法不應該嘗試做任何密碼驗證或認證。 validateCredentials 方法應該通過比較給定的 $user 與 $credentials 來驗證用戶。舉例來說,這個方法可以比較 $user->getAuthPassword() 字串跟 Hash::make 后的 $credentials['password']。這個方法應該只驗證用戶的憑證數組并且返回布爾值。 現在我們已經看過 UserProvider 的每個方法,接著來看一下 Authenticatable。記住,提供者應該從 retrieveById 和 retrieveByCredentials 方法返回這個接口的實現: ~~~ interface Authenticatable { public function getAuthIdentifier(); public function getAuthPassword(); public function getRememberToken(); public function setRememberToken($value); public function getRememberTokenName(); } ~~~ 這個接口很簡單。 The getAuthIdentifier 方法應該返回用戶的「主鍵」。在 MySQL 后臺,同樣,這將會是個自動遞增的主鍵。getAuthPassword 應該返回用戶哈希過的密碼。這個接口讓認證系統可以與任何用戶類一起運作,無論你使用什么 ORM 或保存抽象層。默認,Laravel 包含一個實現這個接口的 User 類在 app 文件夾里,所以你可以參考這個類當作實現的例子。 最后,當我們已經實現了 UserProvider,我們準備好用 Auth facade 來注冊擴展: ~~~ Auth::extend('riak', function($app) { return new RiakUserProvider($app['riak.connection']); }); ~~~ 用 extend 方法注冊驅動之后,在你的 config/auth.php 配置文件切換到新驅動。
                  <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>

                              哎呀哎呀视频在线观看