如何使用我现有的基于cakephp的项目用户来使用XMPP ejabberd聊天应用程序

时间:2016-05-03 06:41:49

标签: xmpp ejabberd converse.js

我有一个基于cakephp2.3的项目,表名为“user_master”。

我使用的是ejabberd聊天应用程序,而ejabberd用户表名是“user”。

我正在使用convers.js客户端。

现在我面临使用XMPP ejabberd的现有项目用户进行身份验证,发送好友请求,与朋友聊天的问题。

我尝试使用外部身份验证,但即使我使用http://localhost:5280/admin链接在ejabberd服务器上添加了错误的凭据,它也允许我登录。

我正在使用Ubuntu,我已经添加了所有类型的设置。如果我将它用作独立应用程序,它工作正常但是当我想将它用于现有用户时它停止工作。

Ejabberd服务器:http://localhost:5280/admin

“ejabberd.cfg”文件中的外部身份验证配置。

{auth_method, external}.
{extauth_program, "/etc/ejabberd/auth.php"}.

外部认证文件“auth.php”。

 <?php 
        require 'ejabberd_external_auth.php';
        class Auth extends EjabberdExternalAuth {
            protected function authenticate($user, $server, $password) {
                $stmt = $this->db()->prepare("SELECT username FROM users WHERE username = ? AND password = ? ");
                $stmt->execute(array($user, $password));
                if($stmt->rowCount() >= 0 )
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }

            protected function exists($user, $server) {
                $stmt = $this->db()->prepare("SELECT username FROM users WHERE username = ? ");
                $stmt->execute(array($user));
                if($stmt->rowCount() >= 0 )
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        $pdo = new PDO('mysql:dbname=ejabberd;host=localhost', 'root', 'root');
        new Auth($pdo, 'auth.log');

提前致谢

0 个答案:

没有答案