Facebook 如何在YII2中区分oauth社交媒体插件

Facebook 如何在YII2中区分oauth社交媒体插件,facebook,twitter,oauth,yii2,Facebook,Twitter,Oauth,Yii2,我有一个网站,它使用twitter、facebook或谷歌登录系统。 我使用,这是我的代码 配置 'authClientCollection' => [ 'class' => 'yii\authclient\Collection', 'clients' => [ 'facebook' => [ 'class' => 'yii\authclien

我有一个网站,它使用twitter、facebook或谷歌登录系统。 我使用,这是我的代码

配置

'authClientCollection' => [
              'class' => 'yii\authclient\Collection',
              'clients' => [
                'facebook' => [
                  'class' => 'yii\authclient\clients\Facebook',
                  'clientId' => 'asdsad',
                  'clientSecret' => 'xzxas',
                ],
            'twitter' => [
                'class'          => 'yii\authclient\clients\Twitter',
                'consumerKey'    => 'sadsd',
                'consumerSecret' => 'dasdasd',
            ],
          ],
        ],
控制器

public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
            'auth' => [
              'class' => 'yii\authclient\AuthAction',
              'successCallback' => [$this, 'oAuthSuccess'],
            ],
        ];
    }

    public function oAuthSuccess($client) {
      // get user data from client
      $userAttributes = $client->getUserAttributes();
      echo '<pre>';
      print_r($userAttributes);
      die;
public function actions()
{
返回[
“错误”=>[
'class'=>'yii\web\ErrorAction',
],
“验证码”=>[
'class'=>'yii\captcha\CaptchaAction',
'fixedVerifyCode'=>YII_环境_测试?'testme':空,
],
“auth'=>[
'class'=>'yii\authclient\AuthAction',
'successCallback'=>[$this'oAuthSuccess'],
],
];
}
公共功能oAuthSuccess($client){
//从客户端获取用户数据
$userAttributes=$client->getUserAttributes();
回声';
打印(用户属性);
死亡

问题是我如何知道用户使用哪种社交媒体登录系统?

要区分您的oauth客户端,您可以将一些实例条件设置为:——


要区分oauth客户机,可以将一些实例条件设置为:——

public function oAuthSuccess($client) {
    $reponse = $client->getUserAttributes();

    $session = Yii::$app->session;

    $token = $client->accessToken->params['access_token'];

    $session->set('token' ,$token);
    $id = ArrayHelper::getValue($reponse , 'id');
    $session->set('auth_id', $id);
    //Facebook Oauth
    if($client instanceof \yii\authclient\clients\Facebook){

        //Do Facebook Login

    }
    //Google Oauth
    elseif($client instanceof \yii\authclient\clients\GoogleOAuth){
        //Do Google Login Condition

    }


}
public function oAuthSuccess($client) {
  // get user data from client
  $userAttributes = $client->getUserAttributes();
  if($client->getName() == 'twitter'){
     ........
  }else if($client->getName() == 'facebook'){
     .........
  }