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

时间:2016-08-13 11:35:44

标签: php laravel laravel-5.1 laravel-authorization

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

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

1 个答案:

答案 0 :(得分:0)

我认为你可以采取以下措施:

  1. 通过更改或添加此列来修改现有表以进行Laravel身份验证:

    • username(字符串)
    • password(字符串)
    • created_at(日期时间)
    • updated_at(日期时间)
    • remember_token(字符串)
  2. 将现有密码更改为Bcrypt散列类型,这是Laravel中的默认散列方法,或者阅读某些指南,如this,以强制Laravel在现有散列函数中工作。

    < / LI>
  3. 制作Laravel User模型。您可以像使用Laravel Migration的any tutorial那样执行此操作。必须是这样的:

    <?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'];
    }
    
  4. 阅读Laravel Authentication课程指南。这很容易,例如你可以使用Auth::check()函数检查用户是否登录,或者尝试像这样登录:

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