{{description}}
dhq-auth的Python项目详细描述
#datahq认证服务
[![构建状态](https://travis-ci.org/datahq/auth.svg?branch=master)](https://travis-ci.org/datahq/auth)
A generic OAuth2 authentication service and user permission manager.
## Quick start
### Clone the repo and install
`make install`
### Run tests
`make test`
### Run server
`python server.py`
## Env Vars
- ` private-key`&;public-key` PEM格式的RSA密钥对。
有关详细信息,请参阅“tools/generate-key-pair.sh”。
-`google-key`&;`google-secret`:oauth凭据,用于使用google进行身份验证
-`github-key`&;` github_secret`:oauth用github进行身份验证的凭据
-`database_url`:sqlalchemy兼容的数据库连接字符串(存储用户数据的位置)
-`external_address`:此服务位于
-`allowed_services`:
哪些权限提供程序可用。提供程序标识符的`;`分隔列表。
每个提供程序标识符采用`[alias:]provider`的形式,其中`provider`是导出`get_permissions(service,userid)`函数的python模块的名称。
-`installed_extensions`:
已安装扩展的列表。a`;`“extension”的分隔列表-导出一个或所有这些函数的python模块的名称
-`on_new_用户(用户信息)`
-`on_用户登录(用户信息)`
-`on_用户登录(用户信息)`
-`on_用户登录(用户信息)`
\api
\检查身份验证令牌的有效性
`/auth/check`
-`on_用户登录(用户信息)`
-`on_用户登录(用户信息)`
>
>
>
//api
**方法:**`获取`
**查询参数:**
-`jwt`-身份验证令牌
-`next`-完成身份验证后重定向到的URL
**返回:**
如果已验证:
``json
{
“已验证”:true,
“profile”:{
“id”:“<;user id>;”,
“name”:“<;user name>;”,
“email”:“<;用户电子邮件”、
“虚拟形象URL”:“<;用户配置文件照片的URL”、
“idhash”:“<;用户的唯一ID”、
“用户名”:“<;用户选择的ID”;“如果用户有用户名,
}
}
``````
“providers”:{
“google”:{
“url”:“<;用于登录google provider的url”
},
“github”:{
“url”:“<;用于登录github provider的url”
},
}
}
`````
验证流完成后,调用方将被调用方已重定向到“next”url,其中包含额外的查询参数
“jwt”,该参数包含身份验证令牌。调用者应缓存此令牌,以便与api进行进一步的交互。
`存储服务`)
**返回:**
``json
{
“令牌”:“<;相关服务的令牌”
“用户id”:“<;用户的唯一id>;”,
“权限”:{
“权限-x”:true,
“权限-y”:false
},
“服务”:“<;相关服务”
}
```###更改用户名
`/auth/update`
**方法:**`post`
**查询参数:**
-`jwt`-身份验证令牌(从`/user/check`接收)
-`username`-用户配置文件的新用户名(此操作只允许一次)
**返回:**
``json
{
“成功”:true,
“error”:“<;错误消息(如果适用)>;”
}
````
ive授权公钥
`/auth/public key`
**方法:**`get`
**返回:**
>PEM格式的服务公钥。
服务可以使用该公钥来验证权限令牌的真实性。
[![构建状态](https://travis-ci.org/datahq/auth.svg?branch=master)](https://travis-ci.org/datahq/auth)
A generic OAuth2 authentication service and user permission manager.
## Quick start
### Clone the repo and install
`make install`
### Run tests
`make test`
### Run server
`python server.py`
## Env Vars
- ` private-key`&;public-key` PEM格式的RSA密钥对。
有关详细信息,请参阅“tools/generate-key-pair.sh”。
-`google-key`&;`google-secret`:oauth凭据,用于使用google进行身份验证
-`github-key`&;` github_secret`:oauth用github进行身份验证的凭据
-`database_url`:sqlalchemy兼容的数据库连接字符串(存储用户数据的位置)
-`external_address`:此服务位于
-`allowed_services`:
哪些权限提供程序可用。提供程序标识符的`;`分隔列表。
每个提供程序标识符采用`[alias:]provider`的形式,其中`provider`是导出`get_permissions(service,userid)`函数的python模块的名称。
-`installed_extensions`:
已安装扩展的列表。a`;`“extension”的分隔列表-导出一个或所有这些函数的python模块的名称
-`on_new_用户(用户信息)`
-`on_用户登录(用户信息)`
-`on_用户登录(用户信息)`
-`on_用户登录(用户信息)`
\api
\检查身份验证令牌的有效性
`/auth/check`
-`on_用户登录(用户信息)`
-`on_用户登录(用户信息)`
>
>
>
//api
**方法:**`获取`
**查询参数:**
-`jwt`-身份验证令牌
-`next`-完成身份验证后重定向到的URL
**返回:**
如果已验证:
``json
{
“已验证”:true,
“profile”:{
“id”:“<;user id>;”,
“name”:“<;user name>;”,
“email”:“<;用户电子邮件”、
“虚拟形象URL”:“<;用户配置文件照片的URL”、
“idhash”:“<;用户的唯一ID”、
“用户名”:“<;用户选择的ID”;“如果用户有用户名,
}
}
``````
“providers”:{
“google”:{
“url”:“<;用于登录google provider的url”
},
“github”:{
“url”:“<;用于登录github provider的url”
},
}
}
`````
验证流完成后,调用方将被调用方已重定向到“next”url,其中包含额外的查询参数
“jwt”,该参数包含身份验证令牌。调用者应缓存此令牌,以便与api进行进一步的交互。
`存储服务`)
**返回:**
``json
{
“令牌”:“<;相关服务的令牌”
“用户id”:“<;用户的唯一id>;”,
“权限”:{
“权限-x”:true,
“权限-y”:false
},
“服务”:“<;相关服务”
}
```###更改用户名
`/auth/update`
**方法:**`post`
**查询参数:**
-`jwt`-身份验证令牌(从`/user/check`接收)
-`username`-用户配置文件的新用户名(此操作只允许一次)
**返回:**
``json
{
“成功”:true,
“error”:“<;错误消息(如果适用)>;”
}
````
ive授权公钥
`/auth/public key`
**方法:**`get`
**返回:**
>PEM格式的服务公钥。
服务可以使用该公钥来验证权限令牌的真实性。