跳转到主要内容

使用电子邮件的Synapse账户有效性模块

项目描述

Synapse电子邮件账户有效性

Synapse插件模块,用于通过验证电子邮件管理账户有效性。

本模块需要

  • Synapse >= 1.34.0
  • sqlite3 >= 3.24.0(如果使用SQLite与Synapse一起使用)

安装

此插件可以通过PyPI安装

pip install synapse-email-account-validity

配置

在Synapse配置文件下的account_validity部分添加以下内容:

  - module: email_account_validity.EmailAccountValidity
    config:
      # The maximum amount of time an account can stay valid for without being renewed.
      period: 6w
      # How long before an account expires should Synapse send it a renewal email.
      renew_at: 1w

同样,在HTTP客户端的listener下,根据以下配置添加一个additional_resource

    additional_resources:
      "/_synapse/client/email_account_validity":
        module: email_account_validity.EmailAccountValidityServlet
        config:
          # The maximum amount of time an account can stay valid for without being
          # renewed.
          period: 6w

持续时间的语法与Synapse配置文件的其余部分相同。

如果它们还不存在,请将模板复制到Synapse的模板目录中。

路由

此插件公开了三个HTTP路由来管理账户有效性

  • POST /_synapse/client/email_account_validity/send_mail,任何注册用户都可以使用访问令牌访问,以请求发送到其电子邮件地址的续订邮件。
  • GET /_synapse/client/email_account_validity/renew,需要包含通过电子邮件发送给用户的最新令牌的token查询参数,以续订与令牌关联的账户。
  • POST /_synapse/client/email_account_validity/admin,任何服务器管理员都可以使用它来管理任何注册用户的账户有效性。它需要一个包含以下键的JSON正文
    • user_id (字符串,必需):要更新的用户的Matrix ID。
    • expiration_ts (整数,可选):此用户的新过期时间戳,以毫秒为单位。如果没有提供令牌,则使用对应的now + period值。
    • enable_renewal_emails (布尔值,可选):是否允许向此用户发送续订邮件。

前两个路由需要由最终用户访问,才能按预期工作。

开发和测试

此存储库使用tox来运行测试。

测试

此存储库使用unittest来运行位于tests目录中的测试。可以使用tox -e tests运行。

发布版本

git tag vX.Y
python3 setup.py sdist
twine upload dist/synapse-email-account-validity-X.Y.tar.gz
git push origin vX.Y

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

synapse-email-account-validity-0.3.tar.gz (20.3 kB 查看哈希值)

上传时间 源代码

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面