3

我想basic.auth用于我的网页,但身份验证不起作用

路由.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)

过滤器.php

auth.basic

Route::filter('auth.basic', function()
{
    return Auth::basic();
});

测试

我打电话/create来创建用户test@test.compassword

这是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 模型

4

1 回答 1

4

确保在 app/config/auth.php -driver设置为eloquent.

您可能还需要实现UserInterface接口 ( class User extends Eloquent implements UserInterface) - 然后您需要在模型中包含方法:

/**
 * 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;
}
于 2013-07-03T16:30:50.360 回答