解决laravel5中auth用户登录其他页面获取不到登录信息的问题
人气:0首先创建user表,里面有:id, name, password,remember_token等字段。
然后再Models添加表模型User.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use DB; class User extends Model implements AuthenticatableContract { protected $table = 'user'; protected $primarykey = 'id'; public $timestamps = false; protected $fillable = ['user_name', 'password', 'user_phone', 'user_email', 'user_role_id', 'user_avart', 'user_sex', 'user_age', 'user_birthday', 'last_login_ip', 'last_login_time', 'is_disabled', 'remember_token']; /** * Get the unique identifier for the user. * * @return mixed */ public function getAuthIdentifier(){ return $this->getKey(); } /** * Get the password for the user. * * @return string */ public function getAuthPassword(){ return $this->password; } /** * Get the token value for the "remember me" session. * * @return string */ public function getRememberToken() { return $this->{$this->getRememberTokenName()}; } /** * Set the token value for the "remember me" session. * * @param string $value * @return void */ public function setRememberToken($value) { $this->{$this->getRememberTokenName()} = $value; } /** * Get the column name for the "remember me" token. * * @return string */ public function getRememberTokenName() { return 'remember_token'; } }
然后需要在配置文件config/auth.php中修改如下配置:
'model' => App\Models\User::class, //指定模型 'table' => 'user', //指定用户表(user是我数据中储存用户的表)
接着在登录方法里使用Auth::login() 方法登录,如下:
public function store(Request $request) { if(empty($request->get('chkCode')) || trim($request->get('chkCode')) != trim(Session::get('admincaptcha'))){ $error->add('result','验证码不正确'); return back()->withErrors($error); } $adminUser = User::where('user_name',$request->get('user_name'))->where('user_role_id', '>', 0)->first(); if(empty($adminUser)){ $error->add('result','用户无后台权限'); return back()->withErrors($error); }else{ if (md5($request->get('user_pwd'))===$adminUser->password&&$adminUser->user_role_id){ Auth::login($adminUser); Session::put('admincaptcha', ""); return redirect()->route('admin.home'); }else{ $error->add('result','用户名或密码错误'); return back()->withErrors($error); } } }
然而虽然这个页面可以获取到登录信息,然而其他页面却没有,原来是因为id和密码我用的是user_id和user_pwd不是id和password,这两个必须不能变,改了之后可以正常登录。
以上这篇解决laravel5中auth用户登录其他页面获取不到登录信息的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
- Laravel实现用户注册和登录
- Laravel 5框架学习之用户认证
- Laravel重写用户登录简单示例
- Laravel框架用户登陆身份验证实现方法详解
- Laravel实现用户多字段认证的解决方法
- Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
- laravel-admin 管理平台获取当前登陆用户信息的例子
- Laravel多用户认证系统示例详解
- Laravel6.2中用于用户登录的新密码确认流程详解
- Laravel 微信小程序后端实现用户登录的示例代码
- Laravel用户授权系统的使用方法示例
- laravel利用中间件防止未登录用户直接访问后台的方法
- Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
加载全部内容