我正在嘗試在我的網站上實施Facebook登錄。我有一些問題。 當用戶授予我權限時,我被堆積在我的數據庫中創建一個新帳戶(所以我可以使用我的功能來檢查用戶是否已登錄併爲更多員工)。Facebook登錄網站
我的問題是當用戶(已經在我的網站上與Facebook註冊)如何登錄他?只使用他的Facebook ID?但如果是的,其他人知道我的Facebook ID,他可以登錄?
一些代碼片段HTML:
<a href="#facebook" id="f_in" class="log">Log In With Facebook</a>
JS
window.fbAsyncInit = function() {
FB.init({
appId : 'APPID', // App ID
channelURL : '', // Channel File, not required so leave empty
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
oauth : true, // enable OAuth 2.0
xfbml : false // parse XFBML
});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
//login Function
function login(){
FB.getLoginStatus(function(response){
if(response.status === 'connected'){
getCurrentUserInfo(response);
}else{
FB.login(function(response) {
if(response.authResponse) {
//if (response.perms)
getCurrentUserInfo(response);
} else {
console.log('Auth cancelled.')
}
},{scope:'email, user_birthday'}); // which data to access from user profile
}
});
}
function getCurrentUserInfo() {
FB.api('/me', function(userInfo) {
do_reg(userInfo);
});
}
function do_reg(userInfo){
var dataString = "username="+userInfo.first_name+"&id="+userInfo.userID"&email="+userInfo.email;
$.ajax({
type:"POST",
url: "do_reg.php",
data: dataString,
success:function(data){
console.log(data);
},
error:function(){
}
});
}
和一些PHP:
$username = $_POST['username'];
$email = $_POST['email'];
$id = $_POST['id'];
$pass = pass_gen(10);
$userData['uName'] = $username;
$userData['uEmail'] = $email;
$userData['uFid'] = $id; //facebook ID
$userData['uPassword'] = $pass;
$userData['uPasswordConfirm'] = $pass;
$create_user_row = UserInfo::register($userData); //create user in my DB
if (is_object($create_user_row)) {
$u = new User;
$u->loginByUserID($create_user_row->getUserID()); //login to my website system using created user object if success.
}
//password generator
function pass_gen($length)
{
$random= "";
srand((double)microtime()*1000000);
$data = "AbcDE123IJKLMN67QRSTUVWXYZ";
$data .= "aBCdefghijklmn123opq45rs67tuv89wxyz";
$data .= "0FGH45OP89";
for($i = 0; $i < $length; $i++)
{
$random .= substr($data, (rand()%(strlen($data))), 1);
}
return $random;
}
流量: 1.用戶點擊Facebook的登錄 1.1檢查是用戶登錄Facebook 2.2檢查權限A sked 1.獲取用戶數據並通過ajax發送到do_reg.php 2.基於POST數據在數據庫中創建新用戶 3.使用創建的對象將用戶登錄到網站系統。
所以問題是如果用戶沒有登錄到我的網站,但他已經通過Facebook在網站上創建帳戶當他點擊使用現有帳戶登錄Facebook時如何登錄他?
通過Facebook帳號? 我想我失去了某種流動。
謝謝您的回覆。據我所知,Facebook處理登錄處理,但我需要的只是Facebook用戶信息和基於他的信息在我的網站上創建本地帳戶。 所以我想這樣。 1. JS sdk詢問權限並檢查登錄狀態 2. PHP檢查用戶活動seeion爲我的應用程序//不發送任何數據通過ajax並讓它處理這個Facebook。 3.基於PHP SDk給出的信息創建本地帳戶和本地登錄//所以從這poitn我不在乎如果用戶在Facebook登錄。 – Froxz
我知道這是一個有點怪異的地方,但我有一些工作人員要處理本地帳戶。 – Froxz