0

我似乎无法掌握使用 Zend Framework 对 REST 进行身份验证的方式。我希望用户能够登录一次,然后根据他的用户级别允许他访问站点的任何区域。我们有一个工作的非 REST 登录代码,我基本上只是将它复制并放在类的postAction()方法中Api_LoginController

class Api_LoginController extends REST_Controller
{
    public function postAction() {
        $request = $this->getRequest();
        $form    = new Application_Form_LoginForm;

        if ($request->isPost()) {
            if ($form->isValid($request->getPost())) {
                $email     = $form->getValue('email');
                $password  = $form->getValue('password');

                $user = Application_Model_UserModel::getUserByEmail($email);
                if ( $user && $user->login($password)) {
                        echo json_encode(array('error' => false, 'message' => 'Logged in.'));
                } else {
                       echo json_encode(array('error' => true, 'message' => 'Login failed.'));
                }
            }
        }
    }    
}

我怎么从这里走?Zend(1.11) 是否应该能够在后续访问中识别用户?现在,它似乎在登录后无法识别同一用户。

4

1 回答 1

0

可以使用 Zend 在 REST 应用程序中提供身份验证。

这大致是它背后的想法:

  • 用户使用他的用户名/密码登录
  • 在您的应用程序中,您验证登录凭据
  • 使用这些凭据,您可以生成唯一令牌,类似于普通应用程序中的会话令牌
  • 您将识别令牌发回给用户
  • 用户必须提供其令牌的每个后续请求,作为他已登录的证明
  • 您的应用程序将验证此令牌并执行所需的操作

Zend 已经包含了很多这样的东西,通过一些搜索,您会发现很多功能可能会提供其中一些要点并使它们适合您的应用程序。

于 2013-10-07T14:57:31.573 回答