Shaddow
Shaddow

Reputation: 3215

Laravel basic-auth

I want to use basic.auth for my web page but authentication donst work

routes.php

admin - authentication

Route::get('admin', array('before' => 'auth.basic', function()
{
    return 'Top secret';
}));

create - create test user

Route::get('create', function()
{
    $user = new User;
    $user->email = '[email protected]';
    $user->username = 'test';
    $user->password = Hash::make('password');
    $user->save();
});

config

filters.php

auth.basic

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

test

I call /create to create User [email protected]:password

Here is users table after: enter image description here

Then I call /admin to login

enter image description here

But it doesnt let me in. After Login - it just clear inputs. After Cancel - it return Invalid credentials..


User model

I tried implement 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;
    }
}

Problem solved

I had typo in User model return $this->passsword; There is 3 s.

Now I use default Laravel User model.

Upvotes: 3

Views: 10811

Answers (1)

Rob W
Rob W

Reputation: 9142

Ensure that in app/config/auth.php - driver is set to eloquent.

You may also need to implement the UserInterface interface (class User extends Eloquent implements UserInterface) - then you'll need to include the methods in your model:

/**
 * 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;
}

Upvotes: 4

Related Questions