Zend framework2 API的ZfcUser身份验证

Zend framework2 API的ZfcUser身份验证,zend-framework2,zfcuser,Zend Framework2,Zfcuser,在我目前正在进行的项目中,我遇到了以下情况:有一个web应用程序可供人类用户通过浏览器访问,用户可以在登录后操作数据库中的数据(表示房屋中家用设备的状态)。日志记录功能是通过ZfcUser模块实现的。此外,该应用程序还可以通过计算机访问(安装在设备室内并负责打开和关闭设备的raspberry pi),该计算机可以查看数据库的状态并做出相应的反应 计算机和应用程序之间的通信使用JSON实现,工作正常。但是现在,计算机不发送任何用户特定信息(电子邮件、密码…),因此树莓使用的应用程序功能可以通过任何

在我目前正在进行的项目中,我遇到了以下情况:有一个web应用程序可供人类用户通过浏览器访问,用户可以在登录后操作数据库中的数据(表示房屋中家用设备的状态)。日志记录功能是通过ZfcUser模块实现的。此外,该应用程序还可以通过计算机访问(安装在设备室内并负责打开和关闭设备的raspberry pi),该计算机可以查看数据库的状态并做出相应的反应

计算机和应用程序之间的通信使用JSON实现,工作正常。但是现在,计算机不发送任何用户特定信息(电子邮件、密码…),因此树莓使用的应用程序功能可以通过任何post请求访问到正确的URL。我希望将用户的电子邮件和密码包含到计算机发送的JSON对象中,以便在执行函数之前,web应用程序检查请求是否有效


我想知道的是,是否有一种简单的方法可以使用ZfcUser检查凭据(电子邮件和密码,均表示为字符串)是否有效(如果我理解正确,
ZfcuseAuthentification()
方法不能用于此任务,因为它们与浏览器存储的cookie一起工作).

您可以使用httprequest并使用来自JSON POST的凭据填充它,然后在调用prepareForAuthentication后尝试对其进行身份验证


应用程序在任何情况下都可以使用cookie。如果GUI是在Linux下编写的,那么很可能是这个QT,因此是-WebKit。如果应用程序是在Windows下编写的(基于MFC/ATL/等)-used MSHTML.DLLI也希望了解更多关于如何使用仅JSON视图类型的服务器实现ZFCUser的信息。。
$adapter = $this->zfcUserAuthentication()->getAuthAdapter();
    /** @var \Zend\Http\Request */
    $fakeRequest = $this->getRequest();
    $fakeRequest->getPost()->set('identity', $username);
    $fakeRequest->getPost()->set('credential', $password);
    $result = $adapter->prepareForAuthentication($this->getRequest());

    // Return early if an adapter returned a response
    if ($result instanceof Response) {
        throw new LoginException("");
    }

    $auth = $this->zfcUserAuthentication()->getAuthService()->authenticate($adapter);

    if (!$auth->isValid()) {
        $this->flashMessenger()->setNamespace('zfcuser-login-form')->addMessage($this->failedLoginMessage);
        $adapter->resetAdapters();
        // Password does not match
        throw new LoginException("Invalid Username or password");
    }