跳转到主要内容

{{ 描述 }}

项目描述

DataHQ认证服务

Build Status

一个通用的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>"
        },
    }
}

当认证流程完成后,调用者将被重定向到带有额外查询参数 jwtnext 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 查看哈希值)

上传时间: Python 3

由以下机构支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面