来自现有表和项目的 laravel 身份验证

Posted

技术标签:

【中文标题】来自现有表和项目的 laravel 身份验证【英文标题】:laravel authentication from existing table and project 【发布时间】:2016-12-20 07:31:37 【问题描述】:

我有一个现有的 php 项目。我正在将项目从核心移动到 laravel。但我在从现有表中实现管理员身份验证时遇到问题。当我对此进行了大量研究时,我发现有一些命令可以自动创建身份验证功能。

请有人帮助我使用 laravel 模型和现有表手动创建身份验证过程。

【问题讨论】:

查看这个网址:***.com/questions/23431415/… 感谢您向我发送网址。你能建议我如何通过示例制作适合控制器代码的用户模型吗? 管理员和用户在同一张桌子上吗?需要更多信息,您使用的是 jwt auth 吗? admin auth table 与 user table 不同。 【参考方案1】:

我认为您可以执行以下步骤:

    通过更改或添加这些列来修改您现有的 Laravel 身份验证表:

    username(字符串) password(字符串) created_at(日期时间) updated_at(日期时间) remember_token(字符串)

    将现有密码更改为 Bcrypt 哈希类型,这是 Laravel 中的默认哈希方法,或者阅读一些指南,如 this 以强制 Laravel 在您现有的哈希函数中工作。

    制作 Laravel User 模型。你可以像 any tutorial 一样使用 Laravel 迁移。应该是这样的:

    <?php namespace App;
    
    use Illuminate\Auth\Authenticatable;
    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Auth\Passwords\CanResetPassword;
    use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
    use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
    
    class User extends Model implements AuthenticatableContract, CanResetPasswordContract 
    
        use Authenticatable, CanResetPassword;
    
        protected $table = 'users';
    
        protected $fillable = ['password', 'username', 'email'];
    
        protected $hidden = ['password', 'remember_token'];
    
    

    阅读Laravel Authentication 课程指南。这很简单,例如您可以使用Auth::check() 函数检查用户是否登录,或者尝试像这样登录:

    if (Auth::attempt(['email' => $email, 'password' => $password])) 
        // Authentication passed...
    
    

【讨论】:

以上是关于来自现有表和项目的 laravel 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.3 + Passport:总是未经身份验证的错误

来自 laravel 会话登录的经过身份验证的 api 调用。可能吗?

来自两个以上表的 Laravel Multi Auth

Laravel 4 中的多个身份验证会话

登录后 Laravel 基本身份验证重定向到 HTTPS 路由

没有用户模型的 Laravel JWT 身份验证