需要通过oauth插件验证使用Twitter、Google、Facebook API的用户吗?

需要通过oauth插件验证使用Twitter、Google、Facebook API的用户吗?,oauth,yii,authentication,Oauth,Yii,Authentication,首先,我想知道如何使用oauth。我们需要在这个插件中传递什么,这个插件将返回什么。我们需要为不同的php框架定制插件吗。我已经看到,它们是针对不同框架的oauth的不同扩展,这是为什么 我需要在yii框架中对使用社交网络的用户进行身份验证,我已经集成了yii的eouth扩展来使用oauth,并且已经做了一个操作来像这样使用google用户的ads服务 公共职能行动Googleads(){ 如果我想使用linkedin、facebook、twitter等其他服务来注册用户,我应该只更改范围和参数

首先,我想知道如何使用oauth。我们需要在这个插件中传递什么,这个插件将返回什么。我们需要为不同的php框架定制插件吗。我已经看到,它们是针对不同框架的oauth的不同扩展,这是为什么

我需要在yii框架中对使用社交网络的用户进行身份验证,我已经集成了yii的eouth扩展来使用oauth,并且已经做了一个操作来像这样使用google用户的ads服务

公共职能行动Googleads(){


如果我想使用linkedin、facebook、twitter等其他服务来注册用户,我应该只更改范围和参数,还是在其他地方进行一些更改。我如何将用户信息存储在自己的数据库中?

在简单情况下,您可以使用带有字段“*外部id*”和“提供者”的表“标识”。每个OAuth提供程序都必须提供唯一的用户标识符(仅针对该提供程序提供uqiue)。要使其在您的站点上唯一,您可以使用具有提供程序预定义名称(常量)的pair以及任何其他字段(如果提供程序提供)

在同一个表中,您应该存储内部授权的身份数据,提供商名称为“custom”(例如)。要存储密码和其他数据,请使用单独的表,此表中的PK将是您的“*external_id*”。通用方案

还有PHP,类似这样的东西:

class UserIdentity extends CUserIdentity
{
    protected $extUserID;

    public function __construct($extUserID)
    {
            $this->extUserID = $extUserID;
    }
  ...
    public function authenticate()
    {
      ...
      //After search $this->extUserID as PK in users table (built-in authorization)
      ...
      $identity = Identities::model()->findByAttributes(array(
            'ext_id' => $this->extUserID,
            'service' => 'forum',
         ));
      if(!count($identity))
      {
            $identity = new Identities;
            $identity->ext_id = $this->extUserID;
            $identity->service = 'forum';
            $identity->username = $userData['username'];
            $identity->save();
      }
      $this->setState('id', $identity->id);
      ...
    }
}

在简单情况下,您可以使用带有字段“*external_id*”和“provider”的表“Identifications”。每个OAuth提供程序都必须提供唯一的用户标识符(仅针对该提供程序)。要使其在您的站点上唯一,您可以使用带有提供程序预定义名称(常量)的pair。以及任何其他字段(如果提供程序提供)

在同一个表中,您应该存储内部授权的身份数据,提供商名称为“custom”(例如)。要存储密码和其他数据,请使用单独的表,此表中的PK将是您的“*external_id*”。通用方案

还有PHP,类似这样的东西:

class UserIdentity extends CUserIdentity
{
    protected $extUserID;

    public function __construct($extUserID)
    {
            $this->extUserID = $extUserID;
    }
  ...
    public function authenticate()
    {
      ...
      //After search $this->extUserID as PK in users table (built-in authorization)
      ...
      $identity = Identities::model()->findByAttributes(array(
            'ext_id' => $this->extUserID,
            'service' => 'forum',
         ));
      if(!count($identity))
      {
            $identity = new Identities;
            $identity->ext_id = $this->extUserID;
            $identity->service = 'forum';
            $identity->username = $userData['username'];
            $identity->save();
      }
      $this->setState('id', $identity->id);
      ...
    }
}