Angular2 erhält URL-Abfrageparameter
Ich bin einrichten einer Facebook-Registrierung für meine Angular2 web-app.
Sobald die Bewerbung akzeptiert wurde über Facebook (nach der Weiterleitung auf die Facebook-Autorisierung Seite), Umleitung auf meine webapp mit den token und den code als url-params:
http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Aber sobald die Seite geladen wird, der Parameter entfernt werden. Die url werden:
http://localhost:55976/
Wie kann ich das extrahieren der Parameter (access_token und-code), bevor Sie entfernt werden?
Meine routing-Konfiguration enthält:
{ path: 'login', component: LoginComponent },
{ path: 'login/:access_token/:code', component: LoginComponent },
EDIT:
Hier ist, wie ich die Umleitung zu facebook in meinem login.Komponente:
html:
<a class="btn btn-social btn-facebook socialaccount_provider facebook" title="Facebook" href="#" (click)="login_facebook()">
<span class="fa fa-facebook"></span> <span style="padding-left:25px">Sign in with Facebook</span>
</a>
Typoskript:
login_facebook() {
let url = 'https://www.facebook.com/dialog/oauth?'+
'client_id=my_client_id' +
'&redirect_uri=' + encodeURIComponent('http://localhost:55976/#/login/') +
'&response_type=code%20token';
console.log(url);
window.location.href = url;
}
Die facebook-api Umleitung zu http://localhost:55976/#/login/das ist, wo ich versuche mir das access_token und code-Parameter.
EDIT 2:
Wenn ich die abnehme, der scharf in die redirect-url, facebook Umleitung mich zu den guten-URL, aber ohne die scharfen, kantigen beheben können, die url.
Vor dem entfernen '#':
redirect_uri: http://localhost:55976/#/login/
facebook return: http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Nach dem entfernen '#':
redirect_uri: http://localhost:55976/login/
facebook return: http://localhost:55976/login/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Bedeutet das, dass das problem kommt aus der sharp. Aber ohne die scharfen, kantigen gibt HTTP-Fehler 404.0 - Nicht Gefunden.
InformationsquelleAutor der Frage Ben | 2016-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du suchst Abfrageparameter von
ActivatedRoute
.Um Sie zu erhalten, könnte man Sie in Ihre Komponenten ist
OnInit
Funktion wie diese:Es gibt noch mehr Beispiele in dem link, den ich oben setzen. Sie kann haben Probleme mit dem Winkel, da der router erkennt auch Fragmente, die beginnen mit dem #... Wenn eckige hat identifizieren es als fragment, dann können Sie einfach abonnieren, um das fragment zu beobachten aus
ActivatedRoute
und tun es so.Ich bin mir nicht sicher, ob Sie umgeleitet werden. Wenn Sie sind, das konnte man in der Verwendung der
preserveQueryParams
navigation option, so etwas wie dieses.InformationsquelleAutor der Antwort Federico Pettinella
Hier ist meine Letzte funktionierende code:
Importe:
Konstruktor:
InformationsquelleAutor der Antwort Ben
mit Javascript :
InformationsquelleAutor der Antwort Jay Shah
InformationsquelleAutor der Antwort Alex Chaliy
Dies funktioniert für mich! 🙂
InformationsquelleAutor der Antwort Tejashree
haben Sie versucht das?
InformationsquelleAutor der Antwort Emmanuel Villegas