当前位置: 代码迷 >> Java相关 >> 咨询-ejabberd外置登录校验功能
  详细解决方案

咨询-ejabberd外置登录校验功能

热度:521   发布时间:2013-05-17 09:20:48.0
咨询-ejabberd外置登录校验功能
大家好!
    目前我在做ejabberd外置登录校验功能。
    目的:用户注册只需要在web项目对应的数据库插入用户记录,而不用到ejabberd的数据库插入用户记录。
         当我用户登录时,ejabberd通过外置登录校验的脚本来进行校验(脚本可以用erlang、php等。考虑到简单我用的是php)。
    实时步骤:
A:打开ejabberd.cfg,注释掉{auth_method, internal}.
   %%{auth_method, internal}.
B:打开外置校验功能,编写校验的php脚本(php环境采用xampp)
{auth_method, external}.
{extauth_program, "D:\xampp\htdocs\ejabberd-login.php"}.
验证:我用smack代码登录或潘迪安登录。均要输入正确的用户名和密码(以前在ejabberd注册的用户名、密码,是插入到ejabberd库的)才可以登录。现在步骤A都过不了。貌似注释掉{auth_method, internal}.没有用。因为他还是到ejabberd库里面去校验的?不知道怎么回事
搜索更多相关的解决方案: php  用户登录  

----------------解决方案--------------------------------------------------------
我在linux环境,注释掉{auth_method, internal}.已经生效。
但是ejabberd调用不了他指定路径的php。非常奇怪。。
----------------解决方案--------------------------------------------------------
问题是php你发到java板块来
----------------解决方案--------------------------------------------------------
我的php
以下是引用hhwz在2013-5-17 17:12:33的发言:

问题是php你发到java板块来



这是我php程序:我单独自己手工调度是没有问题的。就是通过ejabberd通过cli模式调用有问题

#!/usr/bin/php/bin/php
<?php
@rem 这部分代码只是做测试,验证是否php被调用。将日志写到指定文件里-begin
function writeFile($filename, $content)
{
if($filename)
{
$fp=@fopen($filename, "w");
if($fp)
{
fwrite($fp, $content);
fclose($fp);
}
return true;
}
else
return false;
}

writeFile("/tmp/extauth.log", "my birth day....");
@rem 这部分代码只是做测试,验证已经调过来了。将日志写到指定文件里-end
?>

----------------解决方案--------------------------------------------------------