我是Laravel的新手,但在经过大量的指导后,我的项目进展顺利。
现在,我有一个名为UsersTable
的用户表,它将同时存储Username
和Password
。
然而,在尝试php artisan make:auth
和大量谷歌搜索后,我发现没有明确,准确的方法来定义用户表名称和用于身份验证的用户名 - 密码字段。
我已尝试在我为此尝试创建的另一个项目上的名为users
的表上进行原始电子邮件密码身份验证,它就像一个魅力。我相信,当Laravel已经提供认证系统时,为什么重新发明轮子(我相信),这是一种定制它的方法。
提前致谢! :d
答案 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',
));
对我而言,这是自定义身份验证方法的最快方式,我希望这对您有所帮助。