{{ 描述 }}
项目描述
Oauth2 Flask服务
一个通用的OAuth2认证服务和用户权限管理器。
基于 OpenSpending认证服务。
快速开始
克隆存储库并安装
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格式)。
服务可以使用它来验证权限令牌是否真实。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
dgp-oauth2-1.3.4.tar.gz (81.2 kB 查看哈希值)
构建分布
dgp_oauth2-1.3.4-py3-none-any.whl (12.9 kB 查看哈希值)
关闭
dgp-oauth2-1.3.4.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ef1b3fd2af2e69b0b3eddc73b9841b2bf8a96bc87ce0c8a5fe3da41fa8f14de5 |
|
MD5 | 4c49fbfb3e9c14b1d7e3210f7601650b |
|
BLAKE2b-256 | fdd4060e88d28408d488a59da9f4b3a2ee775c39b330823bd3ab93fecabbd468 |