How to create a secure login system linked to the database in laravel 5.3? [duplicate]

-3

I have a project in laveral 5.3 that I am building an administration.

I already have the whole database structure set up. I want to now login with fields of username and password . You will not have public login, just login.

I have already created a system, but it is not working because indicates that the users table does not exist. Only I want to use my own tables and I do not know how, and I want it to be a secure login with validations.

If you can help me.

Routes

Route::get('admin/login', 'admin\LoginController@showLogin'); // Mostrar login
Route::post('admin/login', 'admin\LoginController@postLogin'); // Verificar datos
Route::get('admin/logout', 'admin\LoginController@logOut'); // Finalizar sesión

Route::group(['before' => 'auth'], function()
{
    Route::get('admin', function (){

    });
});

Controller Login

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use DB;
use Auth;
use Illuminate\Support\Facades\Input;

class LoginController extends Controller{

    public function showLogin (){

        if (Auth::check()){
            return Redirect::to('/admin');
        }
        return view('admin/login');
    } 

    public function postLogin(){

        $data = [
            'username' => Input::get('username'),
            'password' => Input::get('password')
        ];

        if (Auth::attempt($data, Input::get('remember')))
        {

            return Redirect::intended('admin');
        }

        return Redirect::back()->with('error_message', 'Invalid data')->withInput();
    }

    public function logOut(){
        Auth::logout();
        return Redirect::to('admin/login')->with('error_message', 'Logged out correctly');
    }
}

Config.php

return [

    /*
    |--------------------------------------------------------------------------
    | Authentication Defaults
    |--------------------------------------------------------------------------
    |
    | This option controls the default authentication "guard" and password
    | reset options for your application. You may change these defaults
    | as required, but they're a perfect start for most applications.
    |
    */

    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

    /*
    |--------------------------------------------------------------------------
    | Authentication Guards
    |--------------------------------------------------------------------------
    |
    | Next, you may define every authentication guard for your application.
    | Of course, a great default configuration has been defined for you
    | here which uses session storage and the Eloquent user provider.
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | Supported: "session", "token"
    |
    */

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | User Providers
    |--------------------------------------------------------------------------
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | If you have multiple user tables or models you may configure multiple
    | sources which represent each model / table. These sources may then
    | be assigned to any extra authentication guards you have defined.
    |
    | Supported: "database", "eloquent"
    |
    */

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

    /*
    |--------------------------------------------------------------------------
    | Resetting Passwords
    |--------------------------------------------------------------------------
    |
    | You may specify multiple password reset configurations if you have more
    | than one user table or model in the application and you want to have
    | separate password reset settings based on the specific user types.
    |
    | The expire time is the number of minutes that the reset token should be
    | considered valid. This security feature keeps tokens short-lived so
    | they have less time to be guessed. You may change this as needed.
    |
    */

    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],

];
    
asked by anonymous 18.01.2017 / 12:58

2 answers

1

Your question is quite wide, but from what I understand you want to use a table of yours to do the authentication. So come on.

Go to the file app/config/auth.php and change the lines:

'model' => 'App\User',
'table' => 'users',

Change model to the name of your model and table to the name of your table in the database.

No Laravel 5.3 comes with these commented lines, take the comment and do the action, remember that the new table must have the necessary fields for the authentication.

// 'users' => [
//     'driver' => 'database',
//     'table' => 'users',  //Aqui você coloca o nome da sua tabela
// ],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class, //Aqui você coloca sua model
],

However this does not change the authentication logic of Laravel , it simply changes the table and model .

    
18.01.2017 / 13:26
-1

You can use the laravel standard Auth v.

php artisan make:auth

Automatically generate the views of login, register and "panel" (post login), model and controller.

You can have more details by accessing the documentation.

    
18.01.2017 / 13:12