首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sfGuard验证用户凭据

使用sfGuard验证用户凭据
EN

Stack Overflow用户
提问于 2011-12-27 23:37:20
回答 2查看 613关注 0票数 0

我使用symfony 1.4和带有Propel的sfGuard,考虑到这是我第一次体验symfony,我对这个架构的某些部分仍然是个新手。

我被要求创建一些网络服务,其中之一将采取用户(电子邮件)和密码,并打印出一个json字符串反馈的结果。

我不知道如何使用sfGuard执行这样的任务,所以如果有人有一个例子,我将不胜感激。

我认为算法应该是sha1,因为在sf_guard_user表中我发现像这样的行

代码语言:javascript
复制
id  username                algorithm   salt                            password                                    created_at              last_login              is_active   is_super_admin
4   myuser@myhostname.com   sha1    623de866b49c696b452e0d12b55895c8    dcbe87a60a769b9e3b5f0988141b824fa5206235    2011-12-06 02:32:43     2011-12-27 15:49:41     1           0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-28 00:33:07

好吧,我发现了一个肮脏的把戏,但它是有效的。

我可以伪造一个登录表单提交,并将其转换为通常的登录模式,如下所示:

代码语言:javascript
复制
        $request->setParameter('signin', array(
                'username' =>$request->getParameter("username"),
                'password' =>$request->getParameter("password"),
              ));
        $form = new BeetleLoginForm();
        $form->bind($request->getParameter('signin'));
        if ($form->isValid()) {
            $values = $form->getValues();
            $this->getUser()->signin($values['user'], false);
            $resp['return'] = "YES";
            $resp['message'] = "You have successfully logged in";
            return $this->renderText(json_encode($resp));

        }

我希望这能帮助那些陷入同样困境的人。

票数 0
EN

Stack Overflow用户

发布于 2011-12-28 00:19:24

看看sfGuardValidatorUser类就知道了。基本上是这样的:

  1. 检查具有给定用户名的用户是否存在
  2. if 1。然后检查该用户是否处于活动状态(is_active字段)
  3. if 2.然后使用sfGuardUser类中的checkPassword公共方法检查密码(默认值类似于sfGuardUser
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8646378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档