我正在我的 Yii 站点中实现 facebook 注册..我设置了应用程序。对于注册,第一步,我们需要解码由 facebook 发送的 facebook 用户数据。 Facebook 提供了解码信息的代码。我实现了这段代码,但出现了如下错误:
“ fatal error :在第 259 行调用 C:\wamp\www\cma\app\protected\controllers\SiteController.php 中未定义的函数 base64_url_decode()”
我的代码片段是
public function actionFacebookLogin()
{
//error_reporting(E_ALL);
//ini_set("display_errors", 1);
$signed_request = $_POST['signed_request'];
Yii::log("actionFacebookLogin called.....");
//list($encoded_sig,$payload) = explode('.', $signed_request,2);
list ($encoded_sig,$payload) = explode('.', $signed_request,2);
Yii::log('in the list');
//decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
if(strtoupper($data['algorithm'])!= 'HMAC-SHA256'){
Yii::log('Unkonwon alogorithm.Expected HMAC-SHA256');
//return null;
}
//check sig
$expected_sig = hash_hmac('sha256', $payload, $secret,$raw=true);
if($sig !== $expected_sig){
Yii::log('Bad Signed JSON Signature');
//return null;
}
//return $data;
$this->render('facebookview',array('response'=>$data));
}
public function base64_url_decode($input)
{
return base64_decode(strtr($input, '-_', '+/'));
}
我在我的 siteController 中实现了这段代码...
任何人都可以帮忙找出代码有什么问题吗? 提前致谢!
最佳答案
base64_url_decode() 不是标准 PHP 函数,您可能需要如下定义它:
function base64_url_encode($input) {
return strtr(base64_encode($input), '+/=', '-_,');
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_,', '+/='));
}
关于facebook - Yii Facebook 注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814402/