服务器配置学习PHP经验分享PHP实战

laravel 5.2 auth 登录机制修改

2017-06-19  本文已影响91人  Stone_Zhuo

laravel 5.2在使用内置的auth进行登录控制时默认是使用邮箱和密码登录的,如果需要通过用户名和密码去登录则需要进行调整。

调整步骤

$this->group(['namespace' => 'Admin','prefix' => '/admin',], function () {
    Route::auth();
});

相应地,AuthController位于app\Http\Controllers\Admin\Auth\AuthController.php中。

// 登录相关路由
$this->get('login', '[Auth\AuthController@showLoginForm]');
$this->post('login', '[Auth\AuthController@login]');
$this->get('logout', '[Auth\AuthController@logout]');
// 注册相关路由
$this->get('register', '[Auth\AuthController@showRegistrationForm]');
$this->post('register', '[Auth\AuthController@register]');
// 密码重置相关路由
$this->get('password/reset/{token?}', '[Auth\PasswordController@showResetForm]');
$this->post('password/email', '[Auth\PasswordController@sendResetLinkEmail]');
$this->post('password/reset', '[Auth\PasswordController@reset]');

因此可以通过修改app\Http\Controllers\Admin\Auth\AuthController.php中的login方法来达到目的,如果这个方法不存在就创建一个,笔者的代码如下:

/**
 * post login.
 *
 * @param  use App\Http\Requests\LoginRequest $request
 * @return \Illuminate\Http\Response
 */
public function login(LoginRequest $request)
{
    if (Auth::attempt(['name' => $request->get('name'), 'password' => $request->get('password')])) {
        return redirect('/');
    } else {
        return redirect('/admin/login')->withErrors('用户名或密码错误!');
    }
}
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class LoginRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required',
            'password' => 'required',
        ];
    }
}
use Illuminate\Support\Facades\Auth;

因为在login方法使用到了Auth

本文首发于公众号:programmer_cc,转载请注明出处。


微信公众号.jpg
上一篇 下一篇

猜你喜欢

热点阅读