gpt4 book ai didi

python - 如何使用 django ejabberd 桥对用户进行身份验证

转载 作者:行者123 更新时间:2023-11-30 23:08:17 26 4
gpt4 key购买 nike

我正在尝试将 ejabberd 与 django 身份验证集成。我正在遵循以下说明:https://github.com/ffalcinelli/django-ejabberd-bridge

我已经遵循了每一步。

我已经定义了用于身份验证的脚本的路径

{auth_method, external}.
{extauth_program, "script.sh"}. ( I have defined full path here )

脚本文件的内容是:

#!/bin/bash
source <path>/env/bin/activate
python <path>/manage.py ejabberd_auth $@

我的问题是我希望 ejjaberd 维护每个用户的状态(在线、离线、离开等)。我认为每当用户登录(或注销)时,数据都需要发送到 ejjaberd 服务器。我尝试登录和注销,但这些用户没有在 ejabberd ( localhost:5280/admin ) 上注册

我已经从控制台尝试过这个命令:

python manage.py ejabberd_auth $@

它应该询问我的用户名和密码。日志文件中只有一条日志:

2015-08-03 08:11:05,791 [DEBUG] ejabberd_bridge.management.commands.ejabberd_auth: Starting serving authentication requests for eJabberd

如何将用户数据发送到 ejabberd?

最佳答案

您对该身份验证模块的功能期望过高。

django-ejabberd-bridge 的目的是让 ejabberd 检查 Django 身份验证中间件的身份验证,如项目 README 中所述:

Right now it just allows the ejabberd service to perform authentication against Django's authentication middleware.

这与改变状态无关。该桥将在该工作流程中使用:

  1. 用户想要使用XMPP客户端登录ejabberd
  2. ejabberd 使用外部身份验证,因此您的 Django 桥接脚本可检查用户和凭据是否有效。
  3. ejabberd 使用脚本的结果来接受或拒绝用户身份验证请求。

就是这样。状态和用户状态仍照常使用 XMPP 进行管理。当 XMPP session 打开时,用户将被视为在线。当XMPP客户端断开连接时,ejabberd等会将用户视为离线。

用户数据库不重复。它保存在后端服务中。这也是无法从 Web 界面列出用户的原因:ejabberd 不处理它们。

关于python - 如何使用 django ejabberd 桥对用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31783067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com