解决laravel5中auth用户登录其他页面获取不到登录信息
首先创建user表,里面有:id, name, password,remember_token等字段。
然后再Models添加表模型User.php
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
use IlluminateContractsAuthAuthenticatable 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" => AppModelsUser::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,这两个必须不能变,改了之后可以正常登录。
Author:leedaning
本文地址:http://blog.csdn.net/leedaning/article/details/53102703
