我希望能够针对电子邮件和数据库中数据库中的用户表对Yii中的用户进行身份验证。 我可以在Yii中执行此操作,但是现在我希望能够通过RESTful和JSON格式对同一用户进行身份验证。 以下是我的用于身份验证的Yii代码,位于Yii defaut LoginForm模型中:

/**
 * Authenticates the password.
 * This is the 'authenticate' validator as declared in rules().
 */
public function authenticate($attribute,$params)
{

    if(!$this->hasErrors())
    {
        $this->_identity=new UserIdentity($this->email,$this->password);
        if(!$this->_identity->authenticate())
            $this->addError('password','Incorrect email or password.');
    }

}

/**
 * Logs in the user using the given email and password in the model.
 * @return boolean whether login is successful
 */
public function login()
{

    if($this->_identity===null)
    {
        $this->_identity=new UserIdentity($this->email,$this->password);
        $this->_identity->authenticate();
    }
    if($this->_identity->errorCode===UserIdentity::ERROR_NONE)
    {
        $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days
        Yii::app()->user->login($this->_identity,$duration);
        return true;
    }
    else
        return false;

}

我怎样才能做到这一点?

===============>>#1 票数:0

该身份验证基于Cookie / SESSION机制,因此不适用于API查询。 我建议您将查询身份验证与其他签名参数一起使用。 请参阅此参考文章 简而言之,您应该接收用户登录名和密码哈希,使用db数据对其进行检查,然后向客户端返回一些随机生成的令牌,该令牌将用于对所有其他查询进行签名(将此令牌保存到db并进行检查)。

  ask by The Georgia translate from so

未解决问题?本站智能推荐:

3回复

使用令牌实现RESTful API身份验证(Yii / Yii2)

我正在Yii 1.x中构建一个API,它将与移动应用程序一起使用。 部分过程涉及使用以下JSON请求登录(使用用户名和密码): - //使用用户名和密码发送的请求 //如果成功登录,则返回以下响应 此令牌非常重要 - 一旦用户登录该应用程序,我希望他们可以访问要求他们登
2回复

如何使用RESTclient Addon Firefox设置用于静态API身份验证的标头

我有来自Yii Example的这段代码 如何设置标题信息以进行认证。 如何在请求中设置HTTP_X_USERNAME和HTTP_X_PASSWORD; RESTClient插件的名称,值和主体? 感谢提前
1回复

使用“成员”表而非“用户”表进行Yii身份验证

我已经创建了一个名为“ cc_member”的MySQL数据库表,该表将用于身份验证,但是在对Yii Authentication和RBAC进行了一些研究之后。 我找到的所有引用都使用“用户”表。 我想使用Yii身份验证系统,我想知道我是否正在试图使用“ cc_member”将自己撞到墙上。
2回复

RESTful API身份验证设计

有点概念上的问题:我正在设计一个私有的RESTful API,它将被iOS和Android应用程序使用。 我正在使用JWT。 我有一个api_users表,该表允许访问API本身。 我也有一个users表,供使用该应用程序的个人用户登录(即个人的电子邮件和密码)。 所以这
3回复

如何为用户设置多个身份验证器

我正在使用Yii用PHP编写应用程序。 我正在尝试为用户添加能够以不同方式进行身份验证的功能。 我的主要问题是什么是最好的方法。 例如,我正在考虑做这样的事情: 在数据库中有一个与类相关的Authenticators表。 在用户表中,有一个与身份验证器相关的身份验证器I
1回复

宁静的身份验证和授权

我将构建一个单页Web应用程序(使用Backbone js),并使其使用我也必须构建的Restful API(在PHP中)。 我想知道当用户请求一些数据时如何处理对API的用户身份验证和管理授权? 我知道,一个宁静的api应该是无状态的,但是我仍然处于这种状态。 谢谢
1回复

RESTful身份验证-有关流程的问题

我发现Web安全是一个非常有趣的主题,并且我正在尝试学习如何制作API和RESTful Web Services。 我正在阅读此答案,并且对Way-2中描述的过程有一些疑问。 我了解Way-2的要旨,但是我在第4步开始提出疑问。 首先让我们描述令牌变量。 在第4步中,我们已经验
1回复

PHP RESTful API接受身份验证

我正在研究PHP REST API。 我想要一个用户密钥来访问API。 不过,我不确定如何执行此操作,我只是发出密钥,然后让它们在POST或每个API请求的GET发送密钥吗? 如果可以的话,请帮助我以最简单的方式进行解释,我知道这是很多人想要做的事情,它使很多人感到困惑,而不仅仅是我自己。
2回复

在简单的PHP RESTful API服务上进行身份验证

我已经基于PHP Slim Framework开发了一个非常简单的PHP API。 它仅执行一些SQL查询并在我每次调用它时返回一个JSON对象。 我正在通过CURL在另一个网站上访问此API。 我的问题是:由于API的URL现在基本上是公开的,因此保护它的最佳方法是什么? 我的第一
1回复

Yii使用用户身份对象分配外键值

在我的Web应用程序中,我有3个表,用户类型分别为producer_offer,consumer_req,admin和一个user table, producer,consumer 。 关系 基本上基于使用用户ID登录的用户,它应该根据用户类型和ID自动分配给Consumer_req和