我想要什麼? 我想在MVC如何使用PHP SDK v4在MVC中進行Facebook登錄?
合適的Facebook登錄我的目錄樹(簡體):
index.php
/controllers
/users.class.php
/core
/libs
/facebook-sdk (contains Facebook SDK files)
/models
/user.class.php
/views
/login.php
/user
/index.php
我的問題: 我知道如何使一個文件的Facebook登錄,我知道如何在MVC中創建表單登錄,但我是Facebook PHP SDK Framework的新手。
我的一個頁面代碼(簡體):(?除了登錄按鈕)
// Autoload the required files
require_once(ROOT.'core/libs/facebook-sdk/autoload.php');
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
...
// Initialize the SDK
FacebookSession::setDefaultApplication('APP_ID', 'APP_SECRET');
// Create the login helper
$helper = new FacebookRedirectLoginHelper('REDIRECT_URL');
// Check if existing session exists
if (isset($_SESSION) && isset($_SESSION['fb_token'])) {
// Create new session from saved access_token
$session = new FacebookSession($_SESSION['fb_token']);
// Validate the access_token to make sure it's still valid
try {
if (! $session->validate()) {
$session = null;
}
} catch (Exception $e) {
// Catch any exceptions
$session = null;
}
} else {
// No session exists
try {
$session = $helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
// When Facebook returns an error
} catch(Exception $ex) {
// When validation fails or other local issues
echo $ex->message;
}
}
// Check if a session exists
if (isset($session)) {
// Save the session
$_SESSION['fb_token'] = $session->getToken();
// Create session using saved token or the new one we generated at login
$session = new FacebookSession($session->getToken());
} else {
// No session
// Get login URL
$loginUrl = $helper->getLoginUrl();
echo '<a href="' . $loginUrl . '">Log in</a>';
}
如果我指的是我的MVC的理解,我必須把所有這些代碼在FacebookAuth功能的控制器?我是否需要在我的所有應用程序中包含Facebook SDK?或只是爲了登錄?
感謝您提前
控制器的責任是根據用戶輸入改變模型層的狀態。所以......你究竟如何得出結論:*「將所有代碼放在控制器中的FacebookAuth函數中」*是否合適? – 2014-10-06 08:45:44
我知道這是不恰當的,這就是爲什麼我要求幫助 – CDO 2014-10-06 09:13:17
您可能會發現[this](http://stackoverflow.com/a/9685039/727208)有用。驗證用戶的方式不應受身份驗證表單的影響。 – 2014-10-06 10:20:20