Laravel 5 und Socialite - Neue Weiterleitung nach der Anmeldung

Eine weitere neue Frage hier, aber hoffentlich kann jemand etwas Licht ins Dunkel bringen:

Ich verwende Socialite mit Laravel 5 und möchte den Benutzer nach der Anmeldung auf eine Seite auf der Website umleiten können. Das Problem ist, dass @ verwendet wir

return redirect('any-path-I-put-here');

leitet einfach zurück zu 'social-site / login? code = afkjadfkjdslkfjdlkfj ...' (wobei 'social-site' die Seite ist, die gerade verwendet wird, d. h. facebook, twitter, google usw.)

So, was mir so vorkommt, ist, dass die redirect () -Funktion in der Socialite / Contracts / Provider-Oberfläche jede Weiterleitung überschreibt, die ich nachträglich versuche.

Nur zur Verdeutlichung, meine Routen sind richtig eingerichtet. Ich habe jede Version von 'redirect' ausprobiert, die Sie sich vorstellen können ('to', 'back', 'intention', Redirect :: usw.), und die Methode wird von meinem Auth Controller aus aufgerufen (obwohl ich es anderswo ausprobiert habe) auch)

Die Frage ist, wie kann ich diese Weiterleitung () überschreiben, wenn ich mit dem Speichern und Anmelden des Benutzers bei socialite fertig bin? Jede Hilfe wird geschätzt! Danke im Voraus

Der Code, der die betreffende Umleitung enthält, lautet:

public function socialRedirect( $route, $status, $greeting, $user )
{

    $this->auth->login( $user, true );

    if( $status == 'new_user' ) {
        // This is a new member. Make sure they see the welcome modal on redirect
        \Session::flash( 'new_registration', true );

        return redirect()->to( $route );// This is just the most recent attempt. It originated with return redirect($route);, and has been attempted every other way you can imagine as well (as mentioned above). Hardcoding (i.e., 'home') returns the exact same result. The socialite redirect always overrides anything that is put here.
    }
    else {
        return redirect()->to( $route )->with( [ 'greeting' => $greeting ] );
    }
}

... Die SocialAuth-Klasse, die zuvor ausgeführt wird, ist ungefähr 500 Zeilen lang, da sie ermitteln muss, ob der Benutzer vorhanden ist, ggf. neue Benutzer registrieren, Formulare für verschiedene Szenarien anzeigen usw. In der Zwischenzeit ist hier die Funktion das die Information von der Klasse Social Auth durchschickt:

private function socialLogin( $socialUser, $goto, $provider, $status, $controller )
{
    if( is_null( $goto ) ) {
        $goto = 'backlot/' . $socialUser->profile->custom_url;
    }

    if( $status == 'new_user' ) {
        return $controller->socialRedirect($goto, $status, null, $socialUser);
    }
    else {
        // This is an existing member. Show them the welcome back status message.
        $message = 'You have successfully logged in with your ' .
            ucfirst( $provider ) . ' credentials.';

        $greeting =
            flash()->success( 'Welcome back, ' . $socialUser->username . '. ' . $message );

        return $controller->socialRedirect($goto, $status, $greeting, $socialUser);
    }
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage