【发布时间】:2013-07-04 01:16:33
【问题描述】:
我想为我的网页使用basic.auth,但身份验证不起作用
routes.php
admin - 身份验证
Route::get('admin', array('before' => 'auth.basic', function()
{
return 'Top secret';
}));
create - 创建测试用户
Route::get('create', function()
{
$user = new User;
$user->email = 'test@test.com';
$user->username = 'test';
$user->password = Hash::make('password');
$user->save();
});
配置
-
app/config/app- 已定义key(创建 Laravel 安装) -
app/config/auth- 已定义model(User) 和table(users)
filters.php
auth.basic
Route::filter('auth.basic', function()
{
return Auth::basic();
});
测试
我调用/create创建用户test@test.com:password
这是users 之后的表:
然后我打电话/admin登录
但它不让我进入。在 Login 之后 - 它只是清除输入。在 Cancel 之后 - 它返回 Invalid credentials.。
用户模型
我尝试实现UserInterface
<?php
use Illuminate\Auth\UserInterface;
class User extends Eloquent implements UserInterface {
protected $table = 'users';
/**
* 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->passsword;
}
}
问题已解决
我在User 模型return $this->passsword; 中有错字有3 个s。
现在我使用默认的 Laravel User model。
【问题讨论】:
-
1) 你有任何属性修饰符是User模型吗? - 特别是对于密码(我有一个自动散列给定值的设置器,所以我对我的密码进行了双重散列)和 2)你尝试过其他浏览器吗?
-
@RobGordijn - 1) 用户模型只有 -
class User extends Eloquent {}。 2) 谷歌浏览器,火狐 -
你的用户模型是否实现了UserInterface???
-
看看 Laravel 4 附带的默认
User.php模型。 -
你到底在哪里看?这是 Laravel 4 附带的默认模型:github.com/laravel/laravel/blob/master/app/models/User.php