2012-08-07 15 views
11

Stackoverflow używa różnych sposobów logowania się na swojej stronie internetowej, np. z loginem na Facebooku.Jak dodać facebook do logowania na mojej stronie?

Za pomocą wtyczek społecznościowych Facebooka (patrz social plugins) można dodać podobny przycisk lub login na Facebooku. Ale w jaki sposób zarządza nią stackoverflow, aby połączyć konto facebook z kontem stackoverflow?

+0

Na przykład nie jest tam plugin rejestracyjny na stronie, którą powiązane. Oczywiście istnieją sposoby na jego wdrożenie - wystarczy, że użytkownik połączy się z Twoją aplikacją, uzyska potrzebne informacje i utworzy nowe konto z systemem logowania do stron. – CBroe

Odpowiedz

4

Dodatek do Facebooka umożliwia tylko zalogowanie użytkownika do witryny. Musisz wykonać Link do twojego wewnętrznego systemu (tak jak robi to StackOverflow). Oznacza to utworzenie nowego "Użytkownika" na podstawie danych Użytkownika Facebooka.

Na przykład, jeśli witryna internetowa używa adresu e-mail jako "nazwa użytkownika", należy poprosić użytkowników Facebooka o podanie adresu e-mail lub poprosić o zgodę na adres e-mail. Następnie utwórz nowe konto dla użytkownika i podaj losowe hasło.

Należy również zmienić przepływ logowania, aby istniejący użytkownicy mogli logować się za pomocą swojego adresu e-mail/hasła lub powiązanego konta Facebook.

7

Facebook Social Plugin: Przycisk logowania Facebook oferuje cały szereg wtyczek społecznościowych. Ten, który nas interesuje, to przycisk logowania. Oto podstawowe czynności związane z umieszczeniem przycisku na stronie:

Potrzebujesz aplikacji Facebook dla swojej witryny. Przejdź do strony https://developers.facebook.com/apps/ i kliknij przycisk "Utwórz nową aplikację".

Twoja "wyświetlana nazwa aplikacji" może mieć znaczenie. Zazwyczaj używam nazwy domeny dla witryny. Możesz użyć tej samej aplikacji do innych celów również w przyszłości. "Przestrzeń nazw aplikacji" musi być czymś, co nie zawiera żadnych znaków specjalnych. Zwykle używam nazwy wyświetlanej aplikacji bez spacji, kropek itd. Teraz musisz wpisać swoją "domenę aplikacji" i adres witryny "Adres URL witryny". Dla domeny aplikacji wprowadź nazwę domeny, na której hostowana jest Twoja witryna. Adres URL witryny podaj pełny adres URL swojej witryny. Jeśli na przykład Twoja domena to nazwa.com, adres URL witryny powinien być podobny do http://www.name.com. Zapisz zmiany po wprowadzeniu odpowiednich informacji. Teraz będziesz mieć stronę, która pokazuje twój "Identyfikator aplikacji" i "Sekret aplikacji". Po prostu zostaw tę stronę otwartą, ponieważ będziesz potrzebować identyfikatora aplikacji po dodaniu kodu przycisku logowania do swojej strony. Teraz musimy uzyskać kod przycisku logowania z Facebooka. Przejdź do http://developers.facebook.com/docs/reference/plugins/login/ i kliknij przycisk "Pobierz kod". Skopiuj kod HTML5 z pierwszego pola, a na razie umieść go poniżej karty głównej strony. Kod powinien wyglądać następująco:

<div id="fb-root"></div> 
<script> 
    (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/all.js#xfbml=1&appId=APP_ID"; 
    fjs.parentNode.insertBefore(js, fjs); 
    } (document, 'script', 'facebook-jssdk')); 
</script> 

W kodzie należy zastąpić APP_ID z aplikacją, którą stworzył dla swojej aplikacji Facebook id. Teraz wklej kod z drugiego pola w miejscu, w którym chcesz umieścić przycisk logowania. Kod powinien wyglądać mniej więcej tak:

<div class="fb-login-button" data-show-faces="false" data-width="200" data-max-rows="1"></div> 

Zmieniłem data-show-faces przypisują fałszywe, ponieważ wraz z nim ustawiona na prawdziwego przycisku wylogowania nie uczyni, gdy użytkownik jest zalogowany.

0

śledzić ten kod po rejestracji app i fb sdk do pobrania:

<?php 
 
require_once('lib/Facebook/FacebookSession.php'); 
 
require_once('lib/Facebook/FacebookRequest.php'); 
 
require_once('lib/Facebook/FacebookResponse.php'); 
 
require_once('lib/Facebook/FacebookSDKException.php'); 
 
require_once('lib/Facebook/FacebookRequestException.php'); 
 
require_once('lib/Facebook/FacebookRedirectLoginHelper.php'); 
 
require_once('lib/Facebook/FacebookAuthorizationException.php'); 
 
require_once('lib/Facebook/GraphObject.php'); 
 
require_once('lib/Facebook/GraphUser.php'); 
 
require_once('lib/Facebook/GraphSessionInfo.php'); 
 
require_once('lib/Facebook/Entities/AccessToken.php'); 
 
require_once('lib/Facebook/HttpClients/FacebookCurl.php'); 
 
require_once('lib/Facebook/HttpClients/FacebookHttpable.php'); 
 
require_once('lib/Facebook/HttpClients/FacebookCurlHttpclient.php'); 
 

 

 
use Facebook\FacebookSession; 
 
use Facebook\FacebookRedirectLoginHelper; 
 
use Facebook\FacebookRequest; 
 
use Facebook\FacebookResponse; 
 
use Facebook\FacebookSDKException; 
 
use Facebook\FacebookRequestException; 
 
use Facebook\FacebookAuthorizationException; 
 
use Facebook\GraphObject; 
 
use Facebook\GraphUser; 
 
use Facebook\GraphSessionInfo; 
 

 
use Facebook\FacebookHttpable; 
 
use Facebook\FacebookCurlHttpClient; 
 
use Facebook\FacebookCurl; 
 

 

 

 
session_start(); 
 
$app_id=""; 
 
$app_secret=""; 
 
$redirect_url=""; 
 
FacebookSession::setDefaultApplication($app_id,$app_secret); 
 
$helper=new FacebookRedirectLoginHelper($redirect_url); 
 
$sess=$helper->getSessionFromRedirect(); 
 
if(isset($sess)){ 
 
\t $request=new FacebookRequest($sess,'GET','/me'); 
 
\t $response=$request->execute(); 
 
\t $graph=$response->getGraphObject(GraphUser::classname()); 
 
\t $name=$graph->getName(); 
 
\t echo 'hi $name'; 
 
\t 
 
} 
 
else 
 
{ 
 
\t echo '<a href="'.$helper->getLoginUrl().'">Login with Facebook</a>'; 
 
}

Powiązane problemy