Php Yii2 Facebook登录问题
我尝试在我的网站上实现facebook登录。我遵循了这个方法。一切都很好…但当我运行网站时,出现了一个错误,未找到类'yiisoft\authclient\widgets\AuthChoice'。Php Yii2 Facebook登录问题,php,facebook,yii2,Php,Facebook,Yii2,我尝试在我的网站上实现facebook登录。我遵循了这个方法。一切都很好…但当我运行网站时,出现了一个错误,未找到类'yiisoft\authclient\widgets\AuthChoice'。 我随此附上我的composer.json和view.php composer.json "require": { "php": ">=5.4.0", "yiisoft/yii2": ">=2.0.5", "yiisoft/yii2-bootstrap": "*",
我随此附上我的composer.json和view.php
composer.json
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": ">=2.0.5",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/authclient": "*",
"yiisoft/yii2-swiftmailer": "*"
},
和我的观点
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use app\models\User;
use vendor\yiisoft\authclient\widgets\AuthChoice;
<?= yiisoft\authclient\widgets\AuthChoice::widget([
'baseAuthUrl' => ['site/auth']
]) ?>
'authClientCollection' => [
'class' => 'yiisoft\authclient\Collection',
'clients' => [
'facebook' => [
'class' => 'yiisoft\authclient\clients\Facebook',
'authUrl' => 'https://www.facebook.com/dialog/oauth?display=popup',
'clientId' => '************',
'clientSecret' => '*********',
],
],
],
添加了这些代码。谁能告诉我为什么会发生这种情况……试试:
yii\authclient\widgets\AuthChoice::widget
信息:composer.json
在“需要”部分中添加此扩展名
"yiisoft/yii2-authclient": "*"
第一个:frontend/config/main.php
需要粘贴吗
'authClientCollection' => [
'class' => 'yii\authclient\Collection',
'clients' => [
'facebook' => [
'class' => 'yii\authclient\clients\Facebook',
'authUrl' => 'https://www.facebook.com/dialog/oauth?display=popup',
'clientId' => '13232324242322424',
'clientSecret' => '32jjkschsuc6dsgdjhsd7dtusdjsds7',
'attributeNames' => ['name', 'email', 'first_name', 'last_name'],
],
],
],
第二:前端/控制器/站点控制器
需要粘贴=====>>>
public function actions()
{
return [
'auth' => [
'class' => 'yii\authclient\AuthAction',
'successCallback' => [$this, 'oAuthSuccess'],
],
];
}
public function oAuthSuccess($client)
{
$userAttributes = $client->getUserAttributes();
$user_email= $userAttributes['email'];
$user_first_name = $userAttributes['first_name'];
$user_last_name = $userAttributes['last_name'];
$model = new SignupForm();
$user = $model->facebook_data($user_email,$user_last_name,$user_first_name);
return $this->render('signup', [
'model' => $model,
]);
exit;
// do some thing with user data. for example with $userAttributes['email']
}
第三步:
在用户表中保存first\u name和last\u name需要创建其他属性
public function facebook_data($user_email,$user_last_name,$user_first_name)
{
$user = new User();
$user->email= $user_email;
$user->first_name = $user_first_name;
$user->last_name = $user_last_name;
return $user->save() ? $user : null;
}
第四步:
从facebook开发者网站需要获得应用程序id和密钥,并在第一步中粘贴,其中提到'clientId'=>'XXXXXXXXXXXXXX',
'clientSecret'=>'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
对于localhost,需要提供url。
我的网址是
我只是简单地粘贴在facebook网站的url,同时添加网站,以获得2个键
第五步:
在视图文件中,需要将此粘贴到facebook图标,然后单击此处
<?= yii\authclient\widgets\AuthChoice::widget([
'baseAuthUrl' => ['site/auth']
]) ?>
它在视图文件中的自动查看facebook图标使用composer或直接安装的扩展名?Yii类的名称空间来自Yii \\