解决laravel5中auth用户登录其他页面获取不到登录信息的问题

首先创建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用户登录其他页面获取不到登录信息的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • laravel 使用auth编写登录的方法

    http://laravelacademy.org/post/8270.html 官网文档 一 . 首先在config=>auth.php 中配置 二 .如果auth使用在model中 需要继承 User 三.model 中自行对数据进行判断 然后存储在 Auth::gurd('supplier') 中 四.中间件对需要登录才能访问的页面 进行判断和拦截 五.登出(logout清楚数据 并退回登录页面) 六.数据拿取 Auth::guard('supplier')->user() //获取一个

  • laravel实现登录时监听事件,添加登录用户的记录方法

    一.执行,php artisan make:event AdminLoginEvent 命令,Laravel目录\app\Events会生成AdminLoginEvent.php文件, 二.我们先在\app\Providers目录下找到EventServiceProvider.php文件,该文件内有一个Events-Listeners数组来保存事件和监听者的映射关系: protected $listen = [ 'App\Events\AdminLoginEvent' => [ 'App\Lis

  • laravel实现Auth认证,登录、注册后的页面回跳方法

    laravel自带的 auth 认证中间件 - app/Http/Middleware/Authenticate.php 查看源码: if (Auth::guard($guard)->guest()) { if ($request->ajax() || $request->wantsJson()) { return response('Unauthorized.', 401); } else { return redirect()->guest($guard.'/login');

  • Laravel中的Auth模块详解

    前言 本文主要给大家介绍的是关于Laravel中Auth模块的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 本文是基于Laravel 5.4 版本的本地化模块代码进行分析书写: 模块组成 Auth模块从功能上分为用户认证和权限管理两个部分:从文件组成上,Illuminate\Auth\Passwords目录下是密码重置或忘记密码处理的小模块,Illuminate\Auth是负责用户认证和权限管理的模块,Illuminate\Foundation\Auth提供了登录.

  • Laravel 自带的Auth验证登录方法

    在laravel有自带的登录验证.只要建立对应的表和配置一些文件就能够使用,无需开发者自己去实现登录逻辑. 第一步:配置方面 在config下的auth.php配置guards 和 providers . 之后新建文件和数据库名称要和这里的对应. 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provid

  • Laravel框架Auth用户认证操作实例分析

    本文实例讲述了Laravel框架Auth用户认证操作.分享给大家供大家参考,具体如下: (1)生成Auth所需文件 打开phpstorm的命令行: php artisan make:auth 生成成功后,打开web.php, 发现多了如下代码: Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); 然后访问 localhost/laravel/public/home就可以看到登录页面, 如果样式不正常

  • laravel-admin 管理平台获取当前登陆用户信息的例子

    在上面添加下面的代码: use Illuminate\Support\Facades\Auth; 在需要用到的地方添加下面的代码 Auth::guard('admin')->user(); //得到的是一个对象 也可以是 Auth::guard('admin')->user()->toArray(); //得到的一个用户信息的数组 以上这篇laravel-admin 管理平台获取当前登陆用户信息的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决laravel5中auth用户登录其他页面获取不到登录信息的问题

    首先创建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

  • 解决Linux中ROOT用户删除普通用户报普通用户已登录问题

    问题产生背景:今天在Linux某普通用户openam_jxedu上配置系统,因为文件误删,我想删除系统安装文件,重新解压安装,但是考虑到该系统生成的配置文件可能会对后来的某些功能造成影响,因此便想删除该普通用户--openam_jxedu,然后重新创建该用户,然后再进行系统的重新安装. 问题描述:我在root用户下,使用userdel -r openam_jxedu 指令删除该用户,但是却发现报如下错误. 我本地确定已经关闭了openam_jxedu用户的连接.因为可能是其他主机在连接opena

  • 解决Laravel5.2 Auth认证退出失效的问题

    登录正常,但是退出的时候并没有清掉session,退出后还是处于登录状态.解决方法如下: 路由如下 Route::group(['namespace' => 'Admin', 'middleware' => 'auth'], function() { Route::resource('admin/post', 'PostController'); }); // 登陆 Route::get('auth/login', 'Auth\AuthController@getLogin'); Route:

  • 解决python3中的requests解析中文页面出现乱码问题

    第一部分 关于requests库 (1) requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到. (2) 其中的Request对象在访问服务器后会返回一个Response对象,这个对象将返回的Http响应字节码保存到content属性中. (3) 但是如果你访问另一个属性text时,会返回一个unicode对象,乱码问题就会常常发成在这里. (4) 因为Response对象会通过另一个属性encoding来将字节码编码成unicode,而这个en

  • vue 解决data中定义图片相对路径页面不显示的问题

    vue在data中定义图片相对路径: data() { return { active: 1, icon: { active: "../assets/images/home-selected.png", inactive: "../assets/images/home.png" } }; } 页面使用vant的标签栏自定义图标: <van-tabbar v-model="active"> <van-tabbar-item inf

  • 解决form中action属性后面?传递参数 获取不到的问题

    如下所示: $p_id = $_REQUEST['p_id']; echo "<h1>您将更新商品编号为<span>$p_id</span>的商品信息 <a href='listproduct.php'>查看所有</a></h1> <form action='updateproduct.do.php?p_id=$p_id' method='get'> 商品名称:<input type='text' name

  • MSSQL中删除用户时数据库主体在该数据库存中拥有架构 无法删除的解决方法

    在ms sql2005 下面删除一个数据库的用户的时候提示 "数据库主体在该数据库中拥有架构,无法删除" 的错误解决方案 1.在 安全性 -> 架构 下面看有没有该用户存在,如果有就删除 再试试在用户下面看能不能把该用户删掉,如果不行就用下面的文法 运行下SQL语句 ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo; --然后手动删除就可以了. 因为选定的用户拥有对象,所以无法除去该用户"解决方法 复制代码 代码如下: use

  • WordPress中登陆后关闭登陆页面及设置用户不可见栏目

    用户登录后关闭登录页面 WordPress默认的登录页面是:http://WP目录/wp-login.php,登录后会自动跳转到:http://WP目录/wp-admin.现在问题来了,如果用户已经登录,但是它又打开wp-login.php页面,会出现什么样的情况呢?答案是,WordPress不会做任何处理,还是直接给你显示登录窗口: 面对如此冰冷的登录框,用户会感到困惑,我刚刚不是已经登录了吗?怎么还要我输入用户名和密码?所以,用户登录后,我们不该让用户再看到登录框.解决此问题的办法有两个:

  • 解决在laravel中auth建立时候遇到的问题

    当你使用auth做用户登录注册的时候,会很方便,但是你在做数据库迁移的时候可能会遇到一个问题 $ php artisan migrate Migration table created successfully. [Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t oo long; max key length is 767

  • 详解Struts2中对未登录jsp页面实现拦截功能

    Struts2中拦截器大家都很经常使用,但是拦截器只能拦截action不能拦截jsp页面.这个时候就有点尴尬了,按道理来说没登录的用户只能看login界面不能够通过输入URL进行界面跳转,这显然是不合理的.这里介绍Struts2中Filter实现jsp页面拦截的功能.(有兴趣的人可以去研究Filter过滤器的其它用法,因为利用过滤器也可以实现action拦截的功能) 下面直接上代码,边看边分析实现步骤和原理. 1.web.xml中的配置信息: <filter> <filter-name&

随机推荐