我来自问自答一下:
我在后台对 appfront 的 store 配置时,没有设置 facebook app id 和 secret,当登录时,转向 customer/account/login,到 AccountController.php的 62 行 $data = $this->getBlock()->getLastData($param); 失败,跟踪到 block/account/login 的 getLastData 的返回句 失败
return [
'loginPageCaptcha' => $loginPageCaptcha,
'email' => $email,
'googleLoginUrl' => Yii::$service->customer->google->getLoginUrl('customer/google/loginv'),
'facebookLoginUrl' => Yii::$service->customer->facebook->getLoginUrl('customer/facebook/loginv'),
];
实际 Yii::$service->customer->facebook->getLoginUrl('customer/facebook/loginv') 异常,跟踪到 services/customer/FaceBook.php 的以下语句
$fb = new \Facebook\Facebook([
'app_id' => $this->facebook_app_id,
'app_secret' => $this->facebook_app_secret,
'default_graph_version' => 'v2.10',
]);
facebook_app_id, facebook_app_secret 都是空的,还试图创建对象,从而 FaceBook 类在 138-142行抛出异常
修改意见:facebook_app_id, facebook_app_secret 都是空的不要创建对象,前面应加以判断
绕过办法:后台给 appfront 的Store 随便设置一个 facebook appid appsecret