关于登录前后台的一点点问题。
关于登录认证的一点问题。我用的是一张users表,并没有单独的管理员表。
前台登录认证,直接用的是默认的auth。按照文档的说明,快速认证弄好之后,前台登录、注册以及获取登录后的信息都没有问题。
后台这里,是自己写的控制器
class LoginController extends Controller
{
//
public function login(Request $request)
{
if($input = Input::all()){
$users = User::all();
$email = DB::table('users')->where('id', '1')->value('email');
$password = DB::table('users')->where('id', '1')->value('password');
$inputpass = $input['password'];
//如果输入的密码和邮箱都正确,那么进入后台
if (Hash::check($inputpass, $password) && $email == $input['email']){
session(['users'=>$users]);
return redirect('admin/index');
//如果不正确,返回当前界面,并提示消息
}else{
return back()->with('msg','后台重地,闲人免进');
}
}else{
//如果已经登录过后台,再访问admin/login 直接跳转到admin/index
if(session('users')){
return redirect('admin/index');
}
return view('admin/login');
}
}
public function logout()
{
session(['users'=>null]);
return redirect('admin/login');
}
}
中间件
class AdminLogin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!session('users')){
return redirect('admin/login');
}
return $next($request);
}
}
然后Kernel.php里添加了一行
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
//后台认证路由中间件
'admin.login' => \App\Http\Middleware\AdminLogin::class,
];
路由
Route::any('admin/login','Admin\LoginController@login');//后台登录路由
登录后的路由都放到了admin.login中间件里
这么一顿做下来,前后台可以分别登录,分别注销。但是,在后台页面,我不能像前台那样获取登录信息了。(虽然写死也可以,毕竟只有一个管理员 = =)
// 获取当前通过认证的用户...
$user = Auth::user();
// 获取当前通过认证的用户 ID...
$id = Auth::id();
我该怎么获取后台登录用户的信息呢?有像前台那样方便的默认方法么。
教程: Laravel 5.3 多用户表登录
教程:Laravel5.3 多表验证(包括登录注册,找回密码,发送邮件)
= = 参考了这两篇,我这种自己写的还是没懂怎么获取登录信息。
推荐文章: