1.建立数据表 admins
2.找到config下的auth.php 文件,加入如下代码
\[ 'guard' => 'web', 'passwords' => 'users', \], /\* |-------------------------------------------------------------------------- | Authentication Guards |-------------------------------------------------------------------------- | | Next, you may define every authentication guard for your application. | Of course, a great default configuration has been defined for you | here which uses session storage and the Eloquent user provider. | | All authentication drivers have a user provider. This defines how the | users are actually retrieved out of your database or other storage | mechanisms used by this application to persist your user's data. | | Supported: "session", "token" | \*/ 'guards' => \[ 'web' => \[ 'driver' => 'session', 'provider' => 'users', \], 'api' => \[ 'driver' => 'token', 'provider' => 'users', 'hash' => false, \], //加入admin,注意:admin 和app目录的admin.php名字要一致 'admin' => \[ 'driver' => 'session', 'provider' => 'admins' \] \], /\* |-------------------------------------------------------------------------- | User Providers |-------------------------------------------------------------------------- | | All authentication drivers have a user provider. This defines how the | users are actually retrieved out of your database or other storage | mechanisms used by this application to persist your user's data. | | If you have multiple user tables or models you may configure multiple | sources which represent each model / table. These sources may then | be assigned to any extra authentication guards you have defined. | | Supported: "database", "eloquent" | \*/ 'providers' => \[ 'users' => \[ 'driver' => 'eloquent', 'model' => App\\User::class, \], //admins 是刚才建立的admins表,名字同样也要保持一致 'admins' => \[ 'driver' => 'eloquent', 'model' => App\\Admin::class \] // 'users' => \[ // 'driver' => 'database', // 'table' => 'users', // \], \], /\* |-------------------------------------------------------------------------- | Resetting Passwords |-------------------------------------------------------------------------- | | You may specify multiple password reset configurations if you have more | than one user table or model in the application and you want to have | separate password reset settings based on the specific user types. | | The expire time is the number of minutes that the reset token should be | considered valid. This security feature keeps tokens short-lived so | they have less time to be guessed. You may change this as needed. | \*/ 'passwords' => \[ 'users' => \[ 'provider' => 'users', 'table' => 'password\_resets', 'expire' => 60, 'throttle' => 60, \], \], /\* |-------------------------------------------------------------------------- | Password Confirmation Timeout |-------------------------------------------------------------------------- | | Here you may define the amount of seconds before a password confirmation | times out and the user is prompted to re-enter their password via the | confirmation screen. By default, the timeout lasts for three hours. | \*/ 'password\_timeout' => 10800, \]; **3.在app下建立admin.php** 'required', 'password'=>'required' \]; } ?>4.建立AdminsController
<?php
namespace App\Http\Controllers;
use App\Http\Requests\UserRequest;
use Illuminate\Support\Facades\Auth;
class AdminsController extends Controller
{
//
public function login(){
//echo bcrypt('123456');
//die();
return view('admins.login');
}
public function dologin(UserRequest $request){
$credentials = $request->only('username', 'password');
/\*\*
\* 使用laravel自带的Auth登录
\* 1、密码使用的是hash加密 $crypt = password\_hash($password, PASSWORD\_DEFAULT);
\*/
if(Auth::guard('admin')->attempt($credentials)){
return response()->json(\['code' => 200, 'msg' => '登录成功'\]);
}else{
return response()->json(\['code' => 403, 'msg' => '用户名或密码错误'\]);
}
}
}
5.建立登录视图页面
6.建立中间件,并配置中间件
Route::group(['prefix' =>'admin','middleware'=>['adminauth']],function(){
Route::get('shop/list','ShopController@index');
});
Route::get('admins/login','AdminsController@login');
Route::post('admins/dologin','AdminsController@dologin');
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class AdminAuth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
//如果没有指定的话,默认 guard 是 web,
//dump(Auth::guard($guard)->check()); 判断用户是否认证
//Auth::guard($guard)->user() 获取用户信息
//Auth::guard($guard)->guest() 是否是来宾
if(Auth::guard($guard)->guest()){
if($request->ajax() || $request->wantsJson()){
return response('Unauthorized.', 401);
}else{
return redirect()->guest('admins/login');
}
}
return $next($request);
}
}
7.如果你在登录页面使用了验证码的话,可以借助独立验证器进行验证
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UserRequest extends FormRequest
{
/**
* 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 \[
//
'username' => 'required|max:30|min:6',
'password' => 'required|min:6',
'code' => 'required|captcha'
\];
}
public function messages()
{
return \[
'username.required' => '账号不能为空',
'username.max' => '账号过长',
'username.min' => '账号格式不正确',
'password.required' =>'密码不能为空',
'password.min' => '密码过于简单',
'code.required' =>'验证码不能为空',
'code.captcha' => '验证码错误'
\];
}
}
8.登录页面展示
手机扫一扫
移动阅读更方便
你可能感兴趣的文章