Skip to main content

postgresql 数据库上的用户和会话管理

项目描述

基于PostgreSQL的用户认证和会话管理

安装

只需使用 pip 从 PYPI 下载它:

pip install pgusers

用法

为了使用这个模块,你需要实例化一个UserSpace对象:

import pgusers

usp = pgusers.UserSpace("userlist", host="dbhost.domain.com",
                        port=5432, user="dbuser")

其中userlist必须是 PostgreSQL 主机上现有数据库实例的名称。其余的关键字参数是创建与数据库服务器的连接所需的参数,并直接传递给psycopg2模块。

重复连接到同一个用户空间会返回同一个对象。

以下是UserSpace实例可用的方法。

create_user(self, username, password, email, admin=False, extra_data=None)

创建一个新用户。返回创建的用户的数字用户 ID。

用户名

要创建的用户名,如果已经有该用户名的记录,则会引发BadCallError异常。

密码

明文形式的用户密码。

电子邮件

用于通知或密码恢复的电子邮件。如果电子邮件存在于数据库中,则会引发BadCallError 。

管理员

一个布尔值,指示用户是否是管理员。

额外数据

将附加到记录的任何数据。这可以是任何可以使用 标准库中的pickle模块序列化的东西。

validate_user(self, username, password, extra_data=None)

验证(或登录)用户。返回一个元组,其中包含一个包含会话密钥的字符串、一个指示用户是否为管理员的布尔值以及数字用户 ID。如果未找到用户,则返回的元组将为("", False, None)

用户名

要认证的用户名。

密码

明文密码。

额外数据

将附加到会话的可选数据。这可以是任何可以使用标准库中的pickle模块序列化的东西。

delete_user(self, username=None, userid=None)

根据用户名或用户 ID 删除用户。必须指定用户名或用户 ID。如果删除则返回OK ,如果未找到则返回NOT_FOUND 。

用户名

用户名。

用户名

数字用户 ID。

change_password(self, userid, newpassword, oldpassword=None)

更改用户的密码。返回OKNOT_FOUNDREJECTED 如果未指定用户名或用户 ID,则引发 BadCallError。

用户名

由create_user()返回的数字用户 ID

新密码

新密码,明文形式。

旧密码

当前密码,明文形式。如果指定,将根据当前密码检查 oldpassword,如果它们不匹配,调用将失败。如果不指定oldpassword,则无条件更改密码。

check_key(自我,钥匙)

重置会话超时。将密钥的生存时间重置为默认值。返回形式为(rc, username, userid, extra_data)的元组,其中 rc 可以是OKNOT_FOUNDEXPIRED。如果NOT_FOUNDEXPIRED,则 username 和 userid 将为None

关键

validate_user()返回的会话密钥

set_session_TTL(自我,秒)

设置所有会话的 TTL。所有新会话或检查的会话都将设置为此新的 TTL 值。

生存时间的秒数。当前会话的默认 TTL 为 864000 秒,即 10 天。这可能会在未来的版本中改变。

find_user(self, username=None, email=None, userid=None)

查找给定用户名、电子邮件或用户 ID 的用户。必须至少提供其中之一。

此方法不验证用户或任何会话。它用于在数据库中检索有关用户的信息。

返回包含字段useridusernameemailadminextra_data的字典。如果未找到用户,则无。

用户名

用户名。

电子邮件

电子邮件。

用户名

数字用户 ID。

modify_user(self, userid, username=None, email=None, extra_data=None)

修改用户数据。如果成功则返回OK NOT_FOUND如果不成功。

用户名

create_user()返回的用户 ID

用户名

要更改的新用户名(如果指定)。

电子邮件

要更改的新电子邮件(如果指定)。

额外数据

要更改的新 extra_data(如果指定)。

is_admin(自我,用户 ID)

检查用户是否为管理员。如果是则返回True ,否则返回False

用户名

create_user()返回的用户 ID

set_admin(self, userid, admin=True)

授予或撤销用户的管理员权限。要撤销,请在 admin 设置为False的情况下调用

用户名

create_user()返回的用户 ID

管理员

如果设置为True或未指定,则将用户标记为管理员。如果设置为False,则撤销管理员权限。

all_users(自己)

生成器为用户空间中的所有用户生成(用户 ID、用户名、电子邮件、管理员)元组。

list_sessions(self, uid, expired=False)

如果 uid 为 0,则生成器为用户或所有用户(即所有会话)产生所有会话。如果 expired 设置为True,则仅产生已过期的会话。产生表单的元组(用户名,密钥,到期)

用户名

create_user()返回的用户 ID ,或 0 以返回所有会话。

过期

指示该方法是否应仅返回过期会话的布尔值。

kill_sessions(self, uid, expired=False)

如果 uid 为 0,则终止用户或所有用户(即所有会话)的会话。如果 expired 设置为True,则仅终止已过期的会话。终止会话会将其从数据库中删除,从而使其无效。

用户名

create_user()返回的用户 ID ,或 0 以终止所有会话。

过期

布尔值,指示该方法是否应该只终止过期的会话。

执照

该软件根据MIT 许可条款获得许可

项目详情


下载文件

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

源分布

pgusers-0.9.3.tar.gz (11.4 kB 查看哈希

已上传 source

内置分布

pgusers-0.9.3-py3-none-any.whl (10.8 kB 查看哈希

已上传 py3