Middleware in Laravel funktioniert nicht richtig


Aman Sharma |

Ich versuche, Middleware auf meinen Routen wie folgt anzuwenden:

Route::get('twitterlogin','TwitterController@gettwitterlogin'); 
Route::post('twitterlogin','TwitterController@posttwitterlogin');   
Route::group(['middleware'=>'auth'],function()
{
    Route::get('twitternewsfeed','TwitterController@gettwitternewsfeed');   
    Route::post('postimage','TwitterController@postimage');     
    Route::post('posttweet','TwitterController@posttweet');     
    Route::get('twitterlogout','TwitterController@gettwitterlogout');   
    Route::post('editprofilepic','TwitterController@posteditprofilepic');   
    Route::post('searchuser','TwitterController@postsearchuser');   
    Route::post('edittweet{id}','TwitterController@postedittweet');     
    Route::get('deletetweet{id}','TwitterController@getdeletetweet');   
    Route::post('editprofile','TwitterController@posteditprofile');     
    Route::get('userprofile{email}','TwitterController@getuserprofile');  
}); 

Und wenn ich versuche, mein Login-Formular abzuschicken, komme ich nicht auf die nächste Seite. Es öffnet wieder die Login-Seite....was ist das genaue Problem dabei? Meine authentifizierte Middleware ist wie folgt....

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;

class Authenticate
{
    /**
     * The Guard implementation.
     *
     * @var Guard
     */
    protected $auth;

/**
 * Create a new middleware instance.
 *
 * @param  Guard  $auth
 * @return void
 */
public function __construct(Guard $auth)
{
    $this->auth = $auth;
}

/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Closure  $next
 * @return mixed
 */
public function handle($request, Closure $next)
{
    if ($this->auth->guest()) {
        if ($request->ajax()) {
            return response('Unauthorized.', 401);
        } else {
            return redirect()->guest('twitterlogin');
        }
    }

    return $next($request);
}
}
SP

Ich gehe davon aus Route::post('twitterlogin','TwitterController@posttwitterlogin'), dass Sie die Route verwenden, um Ihren Login-Vorgang durchzuführen - bitte stellen Sie sicher, dass Sie den Benutzer mit Laravels Auth korrekt anmelden und den Benutzer auf die entsprechende Route in der posttwitterloginMethode umleiten

Ich habe das Gefühl, dass Sie auch eine andere Tabelle zum Speichern von Benutzerdaten verwenden - in diesem Fall stellen Sie bitte sicher, dass Sie Ihre Konfigurationsdatei auth.php entsprechend eingerichtet haben

Falls Sie aus irgendeinem Grund einen benutzerdefinierten Authentifizierungsmechanismus verwenden, müssen Sie ihn $this->auth->guest()in Ihrer Middleware durch die entsprechende alternative Prüfung für den nicht angemeldeten Benutzer ersetzen

Zum Beispiel: Wenn Sie eine Session-Variable festlegen is_authenticated, die nach erfolgreicher Anmeldung truemit aufgerufen \Session::put('is_authenticated', true)wird, überprüfen Sie sie if(\Session::get('is_authenticated') === true)in Ihrer Middleware, anstatt sich auf die Laravel Auth-Methode zu verlassenif ($this->auth->guest())

Verwandte Artikel


Haskell Diener Wai Middleware funktioniert nicht richtig

Du frierst ein Also möchte ich meinem Servant-Server zwei Wai-Middlewares hinzufügen. Eine Middleware zum Bereitstellen statischer Dateien und eine zum Protokollieren. Ich habe meine API definiert ( router) und so starte ich meinen Server: webServer :: IO () w

Node.js-Middleware funktioniert nicht richtig

Wadim Kirejew Ich habe ein Modul mit Routen drin. Ich möchte den Zugriff überprüfen, bevor ich den Benutzer fortfahren lasse. Im Routenmodul habe ich zwei Routen und zwei Zugriffsprüfungsfunktionen, die ich als Middleware verwenden möchte: const doesUserExist

Laravel route () funktioniert nicht richtig

Sanjay Ich erstelle eine cms-Anwendung, die nur Benutzer registriert und in der Benutzer Beiträge erstellen können. Das Problem ist in route(). Beim Definieren eines route()Hyperlinks in Blade-HTML funktioniert dies nicht. Route: Route::resource('/admin/users'

laravel firstOrCreate funktioniert nicht richtig?

Stephan-v Ich importiere einige Daten mit der foursquare-API. Meine Datenbank enthält mehrere Duplikate von foursquare_id. Mache ich hier etwas falsch mit dem Code? Ich dachte, die Art und Weise, wie dies eingerichtet ist, überprüft die Datenbank auf den Spalt

Suchabfrage funktioniert in Laravel nicht richtig

Shiva Ganesh public static function searchSubmissions($request, $candidateIds = array(),$isscontact = NULL){ $querys = DB::table('submissions')->select('submissions.*'); if ( Input::has('candidatename') and $request->input('candidatename') != NULL){

onDelete () funktioniert in Laravel nicht richtig

Dhruv Koshiyar Ich habe nach diesem Problem gesucht und eine Lösung gefunden, die nur die Speicher-Engine ändern = InnoDB, aber die Zeile meines nachfolgenden Kindes wird immer noch nicht gelöscht. Meine Modellhierarchie ist .... Board -> Task -> Card -> [comm

finde nicht richtig in Laravel funktioniert

Maria Almudena Garcia Fraile F. Ich habe hier ein leichtes Problem, aber ich stecke hier am Geldautomaten fest. Ich kann nicht verstehen, warum ein einfaches Model::find($id)nicht funktioniert. Ich habe eine neue Bewerbung. Ich habe überprüft, ob die Anwendung

Forelse funktioniert in Laravel nicht richtig?

irham dollah Meine Laravel-Version ist 5.4.36. Ich möchte verwenden forelse, um eine Nachricht anzuzeigen, wenn die Bedingung nicht erfüllt ist. @forelse ($items as $item) <p> @if ($item->quantity<$item->minimum_no) <span class="label label-dan