Vor kurzem habe ich die Facebook-Anmeldeoption auf meiner Website verwendet. Ich habe alle benötigten APIs geschrieben und sie gründlich getestet, indem ich " localhost " als Domäne verwendet habe. Beim Konfigurieren der Einstellungen in meiner APP im Facebook-Entwicklerkonto habe ich alle erforderlichen Einstellungen vorgenommen, z. B. die Angabe der Oauth-Weiterleitungs-URL, das Hinzufügen eines Domainnamens in den Grundeinstellungen und andere Dinge. Dann hat alles gut funktioniert. Daher habe ich die erforderlichen App-Berechtigungen wie pages_manage_posts, pages_read_enagagment, pages_show_list angefordert und beantragt. Facebook genehmigte sie in der App-Überprüfung. Die Redirect-URL ("https://execute.app/#/socialmedia/management/"), die ich in Facebook verwendet habe, wird korrekt in den Facebook Oauth-Redirect-URL-Pfad eingefügt, wie im Bild unten gezeigt.
Ich habe serverseitige APIs für Facebook-Anmelde- und Grafik-APIs verwendet. Ich habe Oauth2 für die Facebook-Anmeldung verwendet. Sie können den Code unten sehen
var OAuth2 = require('oauth').OAuth2;
var oauth2 = new OAuth2(CONSTANTS.FB_APP_Key,
CONSTANTS.FB_APP_Secret,
"", "https://www.facebook.com/dialog/oauth",
"https://graph.facebook.com/oauth/access_token",
null);
app.get('/api/document/facebook/auth', function (req, res) {
var redirect_uri = "https://execute.app/#/socialmedia/management/";
console.log("redirect_uri ", redirect_uri);
var params = { 'redirect_uri': redirect_uri, 'scope': 'email,public_profile,pages_manage_posts,pages_show_list,pages_read_engagement' };
var authUrl = oauth2.getAuthorizeUrl(params);
res.send({
"status": true,
"message": "login url generated successfully",
"url": authUrl
});
});
Scenario-1: When there is and existing active Facebook session in browser i.e, when some user is already logged into Facebook in facebook.com or developers.facebook.com and when we try to login into Facebook from our website, Oauth Authentication API gets called and returns Facebook login URL with status code 200 and the url gets opened in a new tab, its works fine, we don't need to enter Facebook login credentials again, we can just click on "**Continue as USER**" button and then we get the login code, with which we can get user access token. After getting token everything works as planned.
Scenario-2: But if no user is already logged into Facebook in browser and when I click on **login to Facebook** button, API call is made and it returns login URL, but the response status code sent by Oauth login API is 304. A new Facebook login tab is opened, but there is a warning displaying a message saying "URL blocked.
Diese Umleitung ist fehlgeschlagen, da der Umleitungs-URI in den OAuth-Einstellungen des Clients der App nicht auf der weißen Liste steht. Stellen Sie sicher, dass die Client- und Web-OAuth-Anmeldungen aktiviert sind, und fügen Sie alle Ihre App-Domänen als gültige OAuth-Umleitungs-URIs hinzu. "
Sie können jedoch sehen, dass ich in Facebook bereits die richtige Weiterleitungs-URL hinzugefügt habe. Es funktioniert in Szenario 1 und nicht in einem anderen, wie oben erwähnt.
Hinweis: Die von der Oauth Authentication API zurückgegebene Facebook-Anmelde-URL ist unabhängig vom Statuscode 200 oder 304 identisch. Es lautet " https://www.facebook.com/dialog/oauth?redirect_uri=https%3A%2F%2Fexecute.app%2F%23%2Fsocialmedia%2Fmanagement%2F&scope=email%2Cpublic_profile%2Cpages_manage_posts%2Cpages_show_p_ 88XXXXXXX663 "
Bitte helfen Sie mir bei der Lösung dieses Problems, danke im Voraus
Der OAuth-RFC gibt für den Umleitungs-URI Folgendes an:
Der Endpunkt-URI DARF KEINE Fragmentkomponente enthalten.
Es könnte ein Fehler in Facebook sein, dass es für einige Szenarien funktioniert und für andere nicht, aber in der Tat ist es am besten, einen URI mit einer Fragmentkomponente zu vermeiden. Wenn in der Dokumentation von Facebook angegeben ist, dass Sie Umleitungs-URIs mit Fragmenten verwenden können, würde ich versuchen, sie zu kontaktieren und zu fragen, warum dies in einigen Szenarien nicht funktioniert.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen