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