切换到 mongoDB auth::attempt 后不再起作用
Posted
技术标签:
【中文标题】切换到 mongoDB auth::attempt 后不再起作用【英文标题】:After switch to mongoDB auth::attempt does not work anymore 【发布时间】:2015-04-26 10:02:48 【问题描述】:我最近使用 jenssegers/laravel-mongodb 包将我的 Laravel 4 项目切换到了 mongoDB 系统。
种子和迁移都很好,但是 Auth::attempt 函数现在总是返回 false。这在以前效果很好。
这是属性在种子中的样子:
'password' => Hash::make ( 'password' ),
这是 Auth::attempt 比较数据的方式:
$userdata = array(
'email' =>Input::get('email'),
'password' => Input::get('password'),
);
$loginResult = Auth::attempt($userdata, $post_remember);
我插入
use Jenssegers\Mongodb\Model as Eloquent;
在所有模型、种子、迁移和控制器中。
但 auth.attempt 总是返回 false。
【问题讨论】:
您确定输入是否正确传递。只是为了检查,硬编码这些值,看看它是否有效。 【参考方案1】:由于您使用的是 Laravel 4,因此您可以通过在用户模型中实现“UserInterface”来解决此问题。
use Illuminate\Auth\UserInterface;
use Jenssegers\Mongodb\Model as Eloquent;
然后:
class User extends Eloquent implements UserInterface
对于 Laravel 5:
use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Jenssegers\Mongodb\Model as Eloquent;
class User extends Eloquent implements AuthenticatableContract
use Authenticatable;
【讨论】:
以上是关于切换到 mongoDB auth::attempt 后不再起作用的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Auth::attempt() 可以处理关系吗?
Laravel 4 - Auth::attempt() 不工作