laravel auth如何?的

來源:互聯網
上載者:User
//\app\Http\Controllers\Auth\AuthController.php/**     * Create a new authentication controller instance.     *     * @param \Illuminate\Contracts\Auth\Guard     $auth     * @param \Illuminate\Contracts\Auth\Registrar $registrar     */    public function __construct(Guard $auth, Registrar $registrar,Request $request)    {        $this->auth = $auth;        $this->registrar = $registrar;        $this->request = $request;        }            public function postRegister()    {        $data = $this->request->all();        //調用App\Services\Registrar裡的validator        $validator = $this->registrar->validator($data);        if ($validator->fails()) {            $this->throwValidationException(                $this->request, $validator            );        }        $this->auth->login($this->registrar->create($data));//這裡的login哪裡實現的?                return redirect('/user');    }    //\app\Providers\AppServiceProvider.php    public function register()    {    //綁定實現Illuminate\Contracts\Auth\Registrar介面的類App\Services\Registrar,但沒綁定auth的        $this->app->bind(            'Illuminate\Contracts\Auth\Registrar',            'App\Services\Registrar'        );    }    

回複內容:

//\app\Http\Controllers\Auth\AuthController.php/**     * Create a new authentication controller instance.     *     * @param \Illuminate\Contracts\Auth\Guard     $auth     * @param \Illuminate\Contracts\Auth\Registrar $registrar     */    public function __construct(Guard $auth, Registrar $registrar,Request $request)    {        $this->auth = $auth;        $this->registrar = $registrar;        $this->request = $request;        }            public function postRegister()    {        $data = $this->request->all();        //調用App\Services\Registrar裡的validator        $validator = $this->registrar->validator($data);        if ($validator->fails()) {            $this->throwValidationException(                $this->request, $validator            );        }        $this->auth->login($this->registrar->create($data));//這裡的login哪裡實現的?                return redirect('/user');    }    //\app\Providers\AppServiceProvider.php    public function register()    {    //綁定實現Illuminate\Contracts\Auth\Registrar介面的類App\Services\Registrar,但沒綁定auth的        $this->app->bind(            'Illuminate\Contracts\Auth\Registrar',            'App\Services\Registrar'        );    }    

Login哪裡實現
\Illuminate\Auth\Guard 第430行

public function login(UserContract $user, $remember = false)    {        $this->updateSession($user->getAuthIdentifier());        // If the user should be permanently "remembered" by the application we will        // queue a permanent cookie that contains the encrypted copy of the user        // identifier. We will then decrypt this later to retrieve the users.        if ($remember) {            $this->createRememberTokenIfDoesntExist($user);            $this->queueRecallerCookie($user);        }        // If we have an event dispatcher instance set we will fire an event so that        // any listeners will hook into the authentication events and run actions        // based on the login and logout events fired from the guard instances.        $this->fireLoginEvent($user, $remember);        $this->setUser($user);    }

還有啥問題麼= =?

看原始碼:https://github.com/laravel/framework/tree/5.1/src/Illuminate/Auth
自己擴充:http://my.oschina.net/zgldh/blog/379461#OSC_h2_1
參考第三方實現:https://cartalyst.com/manual/sentinel/2.0

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.