外部脚本
在这个认证模块中,当ejabberd启动,它将启动一个脚本去调用它的认证任务.
服务管理员可以使用任何的变成语言去编写外部脚本,ejabberd与脚本之间的接口详情的描述在ejabberd开发指南中. 这里也有一些认证脚本的实例. 链接:https://www.ejabberd.im/extauth
这里是一些特殊的选项:
extauth_program:PathToScript
这个选项表示外部脚本的全路径. 脚本必须是ejabberd能够执行的.
extauth_instances:Integer
表示在虚拟主机中同时运行认证请求的脚本实例的数量,默认值最小为1.
extauth_cache:false|CacheTime Integer
默认值为false 禁用缓存功能, 值为0开启统计缓存,但是不能使用它缓存的信息去认证用户,如果设置其它值,则开启统计和认证两个: CacheTimeInteger 表示的秒数ejabberd可以重用认证信息,由于用户已经断开连接,去重新验证用户,不用重新去查询外部认证脚本.
注意:在一个主机如果内部认证被启动缓存则不应该启用. 如果缓存已启用, mod_last 必须也要在它的vhost中启用.
实例
这个外部认证的设置了,外部脚本, 开启缓存为10分钟, 还有在ejabberd中为每个虚拟主机声明了3个脚本实例.
auth_method: [external]
extauth_program: "/etc/ejabberd/JabberAuth.class.php"
extauth_cache: 600
extauth_instances: 3
按照官方实例配置后的确完成了外部鉴权的配置工作,我们所需要做的就是编写外部脚本。