{{ 描述 }}
项目描述
DataHQ认证服务
一个通用的OAuth2认证服务及用户权限管理器。
快速开始
克隆仓库并安装
make install
运行测试
make test
运行服务器
python server.py
环境变量
PRIVATE_KEY
&PUBLIC_KEY
:PEM格式的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
:哪些权限提供者是可用的。以;
分隔的提供者标识符列表。每个提供者标识符采用[别名:]提供者
的形式,其中提供者
是导出get_permissions(service, userid)
函数的Python模块的名称。INSTALLED_EXTENSIONS
:已安装扩展列表。以;
分隔的扩展
- 导出这些函数之一的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>"
},
}
}
当认证流程完成后,调用者将被重定向到带有额外查询参数 jwt
的 next
URL,其中包含认证令牌。调用者应缓存此令牌以进行与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 查看哈希值)