将身份验证集成到现有的Laravel项目和用户数据库中

时间:2016-06-15 02:53:36

标签: php laravel

我是Laravel的新手,但在经过大量的指导后,我的项目进展顺利。

现在,我有一个名为UsersTable的用户表,它将同时存储UsernamePassword

然而,在尝试php artisan make:auth和大量谷歌搜索后,我发现没有明确,准确的方法来定义用户表名称和用于身份验证的用户名 - 密码字段。

我已尝试在我为此尝试创建的另一个项目上的名为users的表上进行原始电子邮件密码身份验证,它就像一个魅力。我相信,当Laravel已经提供认证系统时,为什么重新发明轮子(我相信),这是一种定制它的方法。

提前致谢! :d

2 个答案:

答案 0 :(得分:1)

使用php artisan make:auth然后:

从使用User模型的用户更改默认表 你必须导航到:config/auth.php

并进行这些更改

 'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\UsersTable::class, //put the right model name here or you can use database driver
        ],
    ],

要更改雄辩模型的表格,您可以执行此操作

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

    class UsersTable extends Model
    {
        /**
         * The table associated with the model.
         *
         * @var string
         */
        protected $table = 'UsersTable';
    }

要将默认登录凭据从电子邮件更改为用户名,只需将其添加到laravel生成的 Authcontroller

class AuthController extends Controller
{
    use AuthenticatesAndRegistersUsers, ThrottlesLogins;

    protected $redirectTo = '/home';
    protected $username = 'username';  // you can put whatever column you want here from your table

立即 编辑laravel生成的视图并将电子邮件输入名称更改为name="username",然后扩展main.blade.php,做一些样式,你很高兴我想去

编辑:别忘了更改验证内容

答案 1 :(得分:0)

Laravel基本身份验证系统不是创建自己的身份验证方法的最快方法...我建议您Sentinel Package自定义身份验证...

例如,使用您可以这样做的用户名来验证您的用户:

Sentinel::authenticate(array(
    'username'    => 'john.doe',
    'password' => 'foobar',
)); 

对我而言,这是自定义身份验证方法的最快方式,我希望这对您有所帮助。