簡體   English   中英

Laravel 5.6發布登錄后重定向到登錄頁面

[英]Laravel 5.6 post login redirect to login page

解決了

解決方案:問題是在數據庫表上使用的主鍵,我僅將主鍵的名稱傳遞給模型中的屬性$ primarykey

我為laravel應用程序開發了一個登錄系統,該表具有與用戶表不同的表,顯然登錄可以正常工作,但是如果我使用重定向和中間件身份驗證來保護我的路由,則在路由上輸入時會出現問題,因為在登錄后該應用程序重定向到受保護的路由,並在輸入受保護的路由時返回到登錄名,但用戶憑據正確。

我的模型用戶

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */

    protected $table = 'pessoas';

    protected $fillable = [
        'nome_completo', 'email', 'password',
    ];



    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

登錄方式

public function login(Request $request)
    {
        $credentials = $request->only('email', 'password');

        //$email = $request->input('email');
        //$password = $request->input('password'));

        if (Auth::attempt($credentials)) {
            //return Auth::user()->nome_completo;
            return redirect()->intended('/usuario/home');
        }
    }

使用中間件和登錄的路由

Route::group(['middleware' => ['auth']], function () {
    Route::get('/usuario/home', 'Usuarios\UsuarioController@renderHome')->name('home');

    Route::get('/usuario/perfil', function () {
        return view('usuario.meuperfil');
    })->name('perfil');

    Route::get('/usuario/estoque', function () {
        return view('usuario.estoque');
    })->name('estoque');

    Route::get('/usuario/fotos', function () {
        return view('usuario.fotos');
    })->name('fotos');

    Route::get('/usuario/carrinho', function () {
        return view('usuario.carrinho');
    })->name('carrinho');

    Route::get('/usuario/orcamentos', function () {
        return view('usuario.orcamentos');
    })->name('orcamentos');

    Route::get('/usuario/enviados', function () {
        return view('usuario.enviados');
    })->name('enviados');

    Route::get('/usuario/tickets', function () {
        return view('usuario.tickets');
    })->name('tickets');

    Route::get('/usuario/calculadora', function () {
        return view('usuario.calculadora');
    })->name('calculadora');

    Route::get('/usuario/tutorial', function () {
        return view('usuario.tutorial');
    })->name('tutorial');
});



Route::get('/login', function () {
    return view('usuario.login');
})->name('login');

Route::post('/login', 'Usuarios\UsuarioController@login');
Route::get('/logout', 'Usuarios\UsuarioController@logout')->name('logout');

問題的解決辦法是什么?

感謝幫助

您的“登錄”中間件是什么? 不是應該是“ Auth”中間件嗎? 我認為原因是您的中間件。因為您跳到保護路線就意味着您的“嘗試”功能已經成功。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM