资讯专栏INFORMATION COLUMN

laravel5.1 -- 实现多用户认证

CollinPeng / 2770人阅读

摘要:实现多用户认证多用户认证是版本以上的新特性,在中是没有的。要想实现在中进行多用户认证,则需要下载安装包这里我们用的安装包首先,在中引入然后,,等待下载完成。

laravel5.1实现多用户认证

多用户认证是laravel5.2版本以上的新特性,在laravel5.1中是没有的。
要想实现在laravel5.1中进行多用户认证,则需要下载multiple auth 安装包

这里我们用 /Kbwebs/MultiAuth的安装包


Installation

首先,在composer.json 中引入kbwebs/multiauth

"require": {
    "kbwebs/multiauth": "~1.0"
}

然后,compoer update,等待下载完成。

Authentication

首先,打开config/app.php,替换AuthServiceProvider 一行

IlluminateAuthAuthServiceProvider::class -> KbwebsMultiAuthAuthServiceProvider::class

然后,打开config/auth.php,将下面的

"driver"  => "eloquent"
"model"   => AppUser::class,
"table"   => "users"

替换成

"multi-auth" => [
    "admin" => [
        "driver" => "eloquent",
        "model"  => AppHttpModelsAdmin::class,
        "table"  => "users"
    ],
    "user" => [
        "driver" => "eloquent",
        "model"  => AppHttpModelsUser::class,
        "table"  => "users"
    ]
],

现在的auth.php中的内容

 [
        "user" => [
            "driver" => "eloquent",
            "model"  => AppHttpModelsUser::class,
            "table"  => "users"
        ]
    ],

    "password" => [
        "email" => "emails.auth.password",
        "table" => "password_resets",
        "expire" => 60,
    ]

];
Password Reset

如果要实现密码重置,需要进行以下操作

首先,打开config/app.php

替换 IlluminateAuthPasswordsPasswordResetServiceProvider::class
KbwebsMultiAuthPasswordResetsPasswordResetServiceProvider::class

AppHttpModelsUser.php

use IlluminateAuthPasswordsCanResetPassword;
use IlluminateContractsAuthCanResetPassword as CanResetPasswordContract;

替换成
use KbwebsMultiAuthPasswordResetsCanResetPassword;
use KbwebsMultiAuthPasswordResetsContractsCanResetPassword as CanResetPasswordContract;

重新生成password_resets
php artisan kbwebs:multi-auth:create-resets-table
php artisan migrate

Usage

获取登录用户的信息
Auth::user()->get();
或者
Auth::user()->get()->role;

Note:凡是有Auth::的地方都需要修改为Auth::user()

否则会提示
ErrorException in EloquentUserProvider.php line 112:
Undefined index: password

找到AuthenticatesUsers.php

将50行中的
if (Auth::attempt($credentials, $request->has("remember"))) {
修改为
if (Auth::user()->attempt($credentials, $request->has("remember"))) {

即可


转载请注明出处

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22547.html

相关文章

  • Laravel5.1 实现第三方登录认证(包括微博、QQ、微信、豆瓣)

    摘要:目前支持的认证有。英文不好的同学比如我,下面是中文文档通过扩展的,实现了很多第三方认证。国内的有微博微信豆瓣。至于和的具体值,这个是由新浪微博分发给你的,在新浪微博的授权回调页中填写。 前言 第三方登录认证能简化用户登录/注册的操作,降低用户登录/注册的门槛,对提高应用的用户转化率很有帮助。 Socialite Laravel 为我们提供了简单、易用的方式,使用 Laravel Soc...

    nifhlheimr 评论0 收藏0
  • Laravel5.1基于Entrust扩展包实现的RBAC权限控制模块(迁移到其他项目中的方法)

    摘要:基于扩展包实现的权限控制模块迁移到其他项目中的方法大部分的项目中,都需要权限控制,我们的项目用的是的框架,基于扩展包,写了一个通用的权限控制模块,方便后续其他项目需要时可用直接迁移使用。拷贝权限控制中间件。 Laravel5.1基于Entrust扩展包实现的RBAC权限控制模块(迁移到其他项目中的方法) 大部分的项目中,都需要权限控制,我们的项目用的是Laravel5.1的框架,基于E...

    li21 评论0 收藏0
  • laravel5.1 -- 获取用户的登录状态,事件、监听、中间件的简单应用

    摘要:现在我们通过一个用户登录来讲解一个事件,监听一个事件并触发一些操作的全过程。首先,在中注册事件与监听器之间的映射关系。在中,我们把用户状态分为,,根据登录用户的不同状态来显示出不同的内容。 事件存在很多方面,比如登录、购买商品、搜索、查看文章等等。 监听器监听到事件发生后,会执行一些操作。Laravel使用观察者模式来实现这种监听机制。 现在我们通过一个用户登录来讲解一个事件,监听一个...

    nicercode 评论0 收藏0
  • laravel5.1 -- 获取用户的登录状态,事件、监听、中间件的简单应用

    摘要:现在我们通过一个用户登录来讲解一个事件,监听一个事件并触发一些操作的全过程。首先,在中注册事件与监听器之间的映射关系。在中,我们把用户状态分为,,根据登录用户的不同状态来显示出不同的内容。 事件存在很多方面,比如登录、购买商品、搜索、查看文章等等。 监听器监听到事件发生后,会执行一些操作。Laravel使用观察者模式来实现这种监听机制。 现在我们通过一个用户登录来讲解一个事件,监听一个...

    gityuan 评论0 收藏0

发表评论

0条评论

CollinPeng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<