{{ 描述 }}
项目描述
DataHQ 认证服务
通用 OAuth2 身份验证服务和用户权限管理器。
快速开始
克隆 repo 并安装
make install
运行测试
make test
运行服务器
python server.py
环境变量
PRIVATE_KEY&PUBLIC_KEYPEM 格式的 RSA 密钥对。有关tools/generate_key_pair.sh更多信息,请参阅。GOOGLE_KEY&GOOGLE_SECRET: 用于向 Google 进行身份验证的 OAuth 凭据GITHUB_KEY&GITHUB_SECRET: 使用 Github 进行身份验证的 OAuth 凭据DATABASE_URL: 一个 SQLAlchemy 兼容的数据库连接字符串(存储用户数据的地方)EXTERNAL_ADDRESS:此服务所在的主机名ALLOWED_SERVICES: 哪些权限提供程序可用。提供者标识符的;分隔列表。每个提供者标识符都采用 的形式[alias:]provider,其中provider是导出get_permissions(service, userid)函数的 Python 模块的名称。INSTALLED_EXTENSIONS:已安装扩展的列表。;分隔列表- 导出一个extension或所有这些函数的 Python 模块的名称on_new_user(user_info)on_user_login(user_info)on_user_logout(user_info)
API
检查身份验证令牌的有效性
/auth/check
方法: GET
查询参数:
jwt- 身份验证令牌next- 完成身份验证后重定向到的 URL
回报:
如果经过身份验证:
{
"authenticated": true,
"profile": {
"id": "<user-id>",
"name": "<user-name>",
"email": "<user-email>",
"avatar_url": "<url-for-user's-profile-photo>",
"idhash": "<unique-id-of-the-user>",
"username": "<user-selected-id>" # If user has a username
}
}
如果不:
{
"authenticated": false,
"providers": {
"google": {
"url": "<url-for-logging-in-with-the-Google-provider>"
},
"github": {
"url": "<url-for-logging-in-with-the-Github-provider>"
},
}
}
身份验证流程完成后,调用者将被重定向到next带有额外查询参数的 URL,
jwt其中包含身份验证令牌。调用者应缓存此令牌以便与 API 进行进一步交互。
获得服务许可
/auth/authorize
方法: GET
查询参数:
jwt- 用户令牌(从 接收/user/check)service- 相关服务(例如storage-service)
回报:
{
"token": "<token-for-the-relevant-service>"
"userid": "<unique-id-of-the-user>",
"permissions": {
"permission-x": true,
"permission-y": false
},
"service": "<relevant-service>"
}
更改用户名
/auth/update
方法: POST
查询参数:
jwt- 身份验证令牌(从 接收/user/check)username- 用户配置文件的新用户名(此操作只允许一次)
回报:
{
"success": true,
"error": "<error-message-if-applicable>"
}
注意:尝试更新其他用户配置文件字段,例如email将静默失败并返回
{
"success": true
}
接收授权公钥
/auth/public-key
方法: GET
回报:
服务的 PEM 格式的公钥。
服务可以使用它来验证权限令牌是否真实。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
dhq-auth-0.1.6.tar.gz
(27.3 kB
查看哈希)
内置分布
dhq_auth-0.1.6-py3-none-any.whl
(11.4 kB
查看哈希)