yii2
Yii2 OAuth2 - Ex: उपभोक्ता फेसबुक OAuth2
खोज…
फेसबुक डेवलपर पर एक ऐप बनाएं
[ Https://developers.facebook.com/kes(https://developers.facebook.com/) पर जाएं और अपना ऐप बनाएं।
Add product
क्लिक करें और Facebook Login
Yii2-Cortclient स्थापित करें
इस एक्सटेंशन को इंस्टॉल करने से पहले, आपको yii2-app इंस्टॉल करना होगा। इस उदाहरण में, मैं yii2- मूल टेम्पलेट का उपयोग करता हूं। यहाँ स्थापना के लिए गाइड।
Daud
composer require --prefer-dist yiisoft/yii2-authclient
या जोड़ें
"yiisoft/yii2-authclient": "~2.1.0"
अपने composer.json
की require
।
Config जोड़े authClientCollection
अपने config करने के लिए components
:
return [
'components' => [
'authClientCollection' => [
'class' => 'yii\authclient\Collection',
'clients' => [
'facebook' => [
'class' => 'yii\authclient\clients\Facebook',
'clientId' => 'facebook_client_id',
'clientSecret' => 'facebook_client_secret',
],
],
]
],
// ...
];
facebook_client_id
एप्लिकेशन आईडी है और facebook_client_secret
ऐप गुप्त है।
मौखिक कार्रवाई जोड़ें और कॉलबैक सेट अप करें
- अपने लॉगिन दृश्य
Login as facebook account
बटनLogin as facebook account
जोड़ें:
site/login.php
को दृश्य फ़ोल्डर में संपादित करें, पृष्ठ लॉगिन की सामग्री में थ्रेस लाइन जोड़ें:
<?= yii\authclient\widgets\AuthChoice::widget([ 'baseAuthUrl' => ['site/auth'], 'popupMode' => false, ]) ?>
इन सबसे ऊपर, हम सेट कि auth
में कार्रवाई SiteController
OAuth2 प्रवाह हैंडलर होगा।
अब हम इसे बनाते हैं।
class SiteController extends Controller
{
public function actions()
{
return [
'auth' => [
'class' => 'yii\authclient\AuthAction',
'successCallback' => [$this, 'onAuthSuccess'],
],
];
}
public function onAuthSuccess($client)
{
// do many stuff here, save user info to your app database
}
}
हम url बनाने और facebook लॉगिन पेज पर रीडायरेक्ट करने के लिए yii\authclient\AuthAction
उपयोग करते हैं।
फंक्शन onAuthSuccess
उपयोगकर्ता जानकारी प्राप्त करने के लिए उपयोग किया जाता है, अपने ऐप में लॉगिन करें।
Redirect_url को फेसबुक ऐप सेटिंग में जोड़ें
यदि आप अपने yii2-app में बहुत अधिक सक्षम करते हैं, तो आपका रीडायरेक्ट_यूरी होगा:
http://<base_url>/web/site/auth
और सुंदर url अक्षम करें:
http://<base_url>/web/index.php?r=site%2Fauth
उदाहरण:
OnAuthSuccess फ़ंक्शन के लिए उदाहरण
/**
* @param $client ClientInterface
*/
public function onAuthSuccess($client)
{
//Get user info
/** @var array $attributes */
$attributes = $client->getUserAttributes();
$email = ArrayHelper::getValue($attributes, 'email'); //email info
$id = ArrayHelper::getValue($attributes, 'id'); // id facebook user
$name = ArrayHelper::getValue($attributes, 'name'); // name facebook account
//Login user
//For demo, I will login with admin/admin default account
$admin = User::findByUsername('admin');
Yii::$app->user->login($admin);
}