我有一个基于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');
提前致谢