it-swarm.com.de

Wie binde ich den Facebook-Login in meine Website ein?

Ich habe ein paar Nachforschungen angestellt und kann anscheinend nicht ganz verstehen, wie man den Facebook-Login in Ihre Website integriert.

Ich versuche dies für einen altmodischen PHP-Shop zu tun, der bis jetzt keine Art von Login verwendet, sondern nur eine Sitzung, in der Benutzer über Seiten blättern und Artikel in den Warenkorb legen können.

Ich habe hier beim Stackoverflow gelesen, dass Sie eine Tabelle in Ihrer Datenbank benötigen, um die E-Mail-Adresse und die facebook_id des Benutzers zu speichern. Also kann ich mich danach mit anderen Tabellen in meiner Datenbank verbinden, um jedem Benutzer Informationen und vieles mehr zu liefern?

Gibt es andere Möglichkeiten, Ihre Website einfach in Facebook- und Google-Konten zu integrieren? Ich habe etwas über OpenID gelesen, aber nicht wirklich verstanden, wozu es gut ist :)

Deshalb bitte ich euch, mich auf den richtigen Weg zu bringen :). Ich bin wirklich neu in diesem Bereich und alle Ratschläge, Best Practices usw. werden sehr geschätzt!

Vielen Dank!

28
Dan Dinu

Die Idee hinter der Facebook-Anmeldung ist einfach: Der Benutzer geht zur Facebook-Seite, meldet sich dort an, Facebook kümmert sich um die Details und gibt Ihnen (Ihrem Server) schließlich nur einen Daumen hoch und eine ID mit der Bedeutung "Wir haben die Identität dieses Benutzers positiv bestätigt, es ist Benutzer 174264384" . Ihr Server kann dann mit diesen Informationen nach Belieben arbeiten. Wenn Sie einen Benutzer über mehrere Besuche hinweg verfolgen möchten, möchten Sie diese Nummer wahrscheinlich zusammen mit zusätzlichen Informationen in einer Datenbank speichern. Wenn Facebook Ihnen das nächste Mal mitteilt, dass sich Benutzer 174264384 angemeldet hat, können Sie alle damit verbundenen Informationen wieder aus Ihrer Datenbank entfernen.

Hoffe das hilft als 30.000 Fuß Übersicht. Die Details, wie Facebook einen Benutzer sicher authentifizieren und diese Informationen an Ihren Server zurückgeben kann, werden am besten vom PHP SDK behandelt. Lesen Sie die Dokumentation , wenn Sie die Details erkunden möchten.

OpenID macht im Grunde das Gleiche, nur die technischen Details unterscheiden sich und es ist nicht spezifisch für Facebook. Oauth ist eine andere sehr ähnliche Technologie.

25
deceze

Es gibt ein offizielles Facebook-Tutorial, wie man das mit JS macht:

Offizielles Facebook Tutorial

9
Jarrod

Diese Art von Technologie (OpenConnect, wenn ich mich nicht irre, und sie wechseln zu OAuth) ist mit OpenID in etwa identisch.

Google verwendet in der Tat openID, und ich bin mir nicht sicher, wie sie funktionieren.

Für FacebookConnect registrieren Sie Ihre App bei Facebook ( https://developers.facebook.com/apps ) und Sie finden Details zu auth https://developers.facebook.com/ docs/authentication / hier.

Die Idee ist, dass Sie einen Autorisierungscode erhalten, den Sie an Facebook zurücksenden, und ein access_token erhalten, was bedeutet, dass Ihr Benutzer mit Ihrer Website authentifiziert wird. Sie können dies in einer $ _SESSION-Variable speichern, denke ich ... Es ist nicht erforderlich, etwas in der Datenbank zu speichern, aber in Ihrem speziellen Setup können Sie die Benutzer-ID als eindeutige Benutzerkennung verwenden.

3
Andrei Zisu

Ich dachte, es wäre hilfreich für Sie, wenn Sie Javascript SDK für diese verwenden möchten, kopieren Sie bitte diesen Code:

<DOCTYPE html>

<html>

<head>

<title>Facebook Login JavaScript Example</title>

<meta charset=”UTF-8″>

</head>

<body>

<script>

// This is called with the results from from FB.getLoginStatus().

function statusChangeCallback(response) {

console.log(‘statusChangeCallback’);

console.log(response);

// The response object is returned with a status field that lets the

// app know the current login status of the person.

// Full docs on the response object can be found in the documentation

// for FB.getLoginStatus().

if (response.status === ‘connected’) {

// Logged into your app and Facebook.

testAPI();

} else if (response.status === ‘not_authorized’) {

// The person is logged into Facebook, but not your app.

document.getElementById(‘status’).innerHTML = ‘Please log ‘ +

‘into this app.';

} else {

// The person is not logged into Facebook, so we’re not sure if

// they are logged into this app or not.

document.getElementById(‘status’).innerHTML = ‘Please log ‘ +

‘into Facebook.';

}

}
// This function is called when someone finishes with the Login

// Button. See the onlogin handler attached to it in the sample

// code below.

function checkLoginState() {

FB.getLoginStatus(function(response) {

statusChangeCallback(response);

});

}
window.fbAsyncInit = function() {

FB.init({

appId : ‘{your-app-id}’,// plaste your app id

cookie : true, // enable cookies to allow the server to access

// the session

xfbml : true, // parse social plugins on this page

version : ‘v2.1′ // use version 2.1

});

// These three cases are handled in the callback function.
FB.getLoginStatus(function(response) {

statusChangeCallback(response);

});
};
// Load the SDK asynchronously

(function(d, s, id) {

var js, fjs = d.getElementsByTagName(s)[0];

if (d.getElementById(id)) return;

js = d.createElement(s); js.id = id;

js.src = “//connect.facebook.net/en_US/sdk.js”;

fjs.parentNode.insertBefore(js, fjs);

}(document, ‘script’, ‘facebook-jssdk’));
// Here we run a very simple test of the Graph API after login is

// successful. See statusChangeCallback() for when this call is made.

function testAPI() {

console.log(‘Welcome! Fetching your information…. ‘);

FB.api(‘/me’, function(response) {

console.log(‘Successful login for: ‘ + response.name);

document.getElementById(‘status’).innerHTML =

‘Thanks for logging in, ‘ + response.name + ‘!';

});

}

</script>

<fb:login-button scope=”public_profile,email” onlogin=”checkLoginState();”>

</fb:login-button>
<div id=”status”>

</div>
</body>

</html>

Ich habe das Skript aus einem nützlichen Tutorial gefunden. Wenn Sie überlegen, diese Antwort zu bearbeiten, lesen Sie bitte dieses Tutorial Facebook Login Integration with website

3
Rahul Negi

Erstellen Sie eine MySQL-Tabelle

CREATE TABLE `user_login` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `oauth_provider` enum('google','facebook') COLLATE utf8_unicode_ci NOT NULL,
 `oauth_uid` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `username` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
 `user_email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
 `gender` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
 `picture_url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `register_date` datetime NOT NULL,
 `last_update_date` datetime NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Demo-Code anzeigen https://datainflow.com/facebook-login-javascript-sdk/

0
Nisha Sharma