{{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格式的服务公钥。

服务可以使用该公钥来验证权限令牌的真实性。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无法在Netbeans 8.2 JDK8u231中创建java Maven项目(Web应用程序)   java如何以设定的时间间隔生成随机数?   java从socket和inputStream的慢速读取   spring SCORM:Java中基于Web的SCORM播放器   Java将函数传递给方法   java绑定通用服务及其实现和子类型   java如何在运行时从选择列表框中动态选择选项?爪哇硒   java Selenium WebDriver什么是“Selenium客户端和WebDriver语言绑定”   elasticsearch需要elasticsearch高级Java客户端更新ByQueryRequest API帮助   JAVA哈希表查找最大值   WSDL操作中的java soapAction属性为空   java访问封闭类或父类方法的一般方法   eclipse在java中运行带有SeleneTestCase的ANT。lang.NoClassDefFoundError   java Hazelcast不会在节点启动时填充ReplicatedMap   如何在Java中从excel中读取特定行?   html JAVA将本地时间(GMT+8)转换为UTC时间   java将自定义端点添加到Spring数据REST存储库中,并以大摇大摆的方式显示   java计算未来位置