【发布时间】:2014-06-01 19:36:28
【问题描述】:
我将getRememberToken、setRememberToken、getRememberTokenName添加到用户模型,将“remember_token”列添加到用户数据库,运行composer update。
结果:没有错误,使用记住我选项登录与以前一样 - DB 中的“remember_token”仍然为空。
+ 我在Illuminate\Auth\UserProviderInterface 中看不到retrieveByToken() 和updateRememberToken()
出了什么问题?
我做了还是没做某事?出于某种原因,作曲家没有像它应该的那样使用 "laravel/framework": "4.2.*" 吗? v4.2 没有修复记住我的问题? Auth::attempt() 应该以某种方式修改以生成数据并将其放入remember_token? Auth::logout() 不碰remember_token(我放了随机数据,注销并登录后它仍然相同,无论是否记住我)
在哪里挖?
<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
protected $fillable = ['name','email','password','temp_password','code','status', 'remember_token'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password');
/**
* Get the unique identifier for the user.
*
* @return mixed
*/
public function getAuthIdentifier()
{
return $this->getKey();
}
/**
* Get the password for the user.
*
* @return string
*/
public function getAuthPassword()
{
return $this->password;
}
/**
* Get the e-mail address where password reminders are sent.
*
* @return string
*/
public function getReminderEmail()
{
return $this->email;
}
public function scopeCode($query, $code)
{
return $query->whereCode($code);
}
public function scopeEmail($query, $email)
{
return $query->whereEmail($email);
}
public function getRememberToken()
{
return $this->remember_token;
}
public function setRememberToken($value)
{
$this->remember_token = $value;
}
public function getRememberTokenName()
{
return 'remember_token';
}
}
【问题讨论】:
-
您的 User 模型是否直接扩展了 Eloquent 类?您可以发布您的完整用户模型代码吗?
-
已添加。那么在作曲家更新后没有 retrieveByToken() 和 updateRememberToken() 的 Illuminate\Auth\UserProviderInterface 呢?为什么它不自动出现?
-
您的模型看起来不错。我以前没有注意到这一点,但是 Laravel 4.2 还没有发布,你应该将 composer.json 更改为“laravel/framework”:“4.1.*”,然后运行“composer update”
-
是的,在浏览器降级修复问题中删除cookies后。好吧,它接缝我不会再玩开发版了:) tnx
标签: php authentication laravel laravel-4 remember-me