oauth2对python请求http库的支持。
requests-oauth2的Python项目详细描述
#请求-OAuth2
[![pypi](https://img.shields.io/pypi/v/requests-oauth2.svg)(https://pypi.python.org/pypi/requests-oauth2)
oauth v2.0支持
[kennethreitz](https://github.com/kennethreitz)众所周知的
[请求](https://github.com/kennethreitz/requests)库。
提供在python中执行
oauth2的最简单和最简单的方法。oauth2比旧的oauth1.0要容易得多,而且
同样,这个库也很简单,没有任何问题,并且在
日常使用中很实用。如果您正在寻找实现OAuth 1.0的方法,请参见
[请求OAuth](https://github.com/maraujop/requests oauth)。
许可证:BSD
>示例:使用[flask](/examples/web-flask.py)。
如果你知道OAuth2是如何工作的话。您的web应用程序(*foo*)允许用户使用其*qux*
帐户登录。*qux*这是一个服务提供商;他们给了你一个**客户端
id**和一个**密钥**,foo*存储在
后端的某个地方。*qux*和*foo*预先商定了一些**重定向uri**。
2。用户访问*foo*的登录屏幕,例如
`https://www.foo.example/login`
3。*foo*将用户重定向到*qux*的**授权url**,例如
`https://api.qux.example/oauth/authorize`
4。用户将看到*qux*的**同意屏幕**,在该屏幕上,他们
查看请求权限的**范围**,并允许或
拒绝访问。
5。一旦授予访问权,*qux*将通过他们事先约定的
**重定向uri**重定向回*foo*,提供
**代码**。
6。*foo*将**代码**交换为**访问令牌**。access
令牌可以由*foo*代表用户对*qux*进行api调用。
容易。在本例中,我们将开始使用google。
r/>`` python
来自请求的请求。服务导入google client
google auth=googleclient(
client id="您的google client id",
client secret="super secret",
当用户访问日志时重定向uri="http://localhost:5000/google/oauth2callback",
)
```
在页面(第2点)中,我们将构建一个
**授权URL**(第3点),它将引导用户进入Google的
**同意屏幕**,请求授予指定的**作用域**(第4点):
``python
``authorization=google\.authorization\.url(
scope=["email"],
response_ type="code",
)
```
一旦用户单击"允许",google将把它们重定向到
**重定向uri**(第5点),其中包括**code**,作为查询字符串参数之一:
http://localhost:5000/google/oauth2callback?代码=…
该代码将用于请求**访问令牌**(第6点),
对API的所有以下请求都是必需的:
`` python
code=get_request_parameter("code");这取决于您的Web框架!
data=google_auth.get_token(
code=code,
grant_type="authorization_code",
)
`````
您可以将其存储在某个地方以备以后使用,例如在会话中或在数据库中:
``python
会话["access_token"]=data["access_token"]
``
提供**访问令牌**的CT方法因提供者而异。一种流行的方法(google支持)是通过
承载头。这里有一个助手快捷方式:
`` python
from requests\u oauth2 importOAuth2BearToken
with requests.session()as s:
s.auth=OAuth2BearToken(访问令牌)
r=s.get("https://www.googleapis.com/plus/v1/people/me")
r.raise for"状态"
data=r.json()
``````
Facebook等其他提供商允许访问令牌作为请求参数传递(在查询字符串中)。你可以这样做:
``python
from requests\u oauth2 import oauth2bearertoken
with requests.session()as s:
s.params={"access\u token":response["access\u token"]}
r=s.get("https://graph.facebook.com/me")
r.raise for\u status()
data=r.json()
```
bserver>;
*oauth 2.0在facebook中:
<;http://developers.facebook.com/docs/authentication/>;
*github oauth 2.0用法:
<;https://developer.github.com/apps/building oauth apps/>;
*您可以使用postbin测试webhook:<;http://www.postbin.org/>;
[![pypi](https://img.shields.io/pypi/v/requests-oauth2.svg)(https://pypi.python.org/pypi/requests-oauth2)
oauth v2.0支持
[kennethreitz](https://github.com/kennethreitz)众所周知的
[请求](https://github.com/kennethreitz/requests)库。
提供在python中执行
oauth2的最简单和最简单的方法。oauth2比旧的oauth1.0要容易得多,而且
同样,这个库也很简单,没有任何问题,并且在
日常使用中很实用。如果您正在寻找实现OAuth 1.0的方法,请参见
[请求OAuth](https://github.com/maraujop/requests oauth)。
许可证:BSD
>示例:使用[flask](/examples/web-flask.py)。
如果你知道OAuth2是如何工作的话。您的web应用程序(*foo*)允许用户使用其*qux*
帐户登录。*qux*这是一个服务提供商;他们给了你一个**客户端
id**和一个**密钥**,foo*存储在
后端的某个地方。*qux*和*foo*预先商定了一些**重定向uri**。
2。用户访问*foo*的登录屏幕,例如
`https://www.foo.example/login`
3。*foo*将用户重定向到*qux*的**授权url**,例如
`https://api.qux.example/oauth/authorize`
4。用户将看到*qux*的**同意屏幕**,在该屏幕上,他们
查看请求权限的**范围**,并允许或
拒绝访问。
5。一旦授予访问权,*qux*将通过他们事先约定的
**重定向uri**重定向回*foo*,提供
**代码**。
6。*foo*将**代码**交换为**访问令牌**。access
令牌可以由*foo*代表用户对*qux*进行api调用。
容易。在本例中,我们将开始使用google。
r/>`` python
来自请求的请求。服务导入google client
google auth=googleclient(
client id="您的google client id",
client secret="super secret",
当用户访问日志时重定向uri="http://localhost:5000/google/oauth2callback",
)
```
在页面(第2点)中,我们将构建一个
**授权URL**(第3点),它将引导用户进入Google的
**同意屏幕**,请求授予指定的**作用域**(第4点):
``python
``authorization=google\.authorization\.url(
scope=["email"],
response_ type="code",
)
```
一旦用户单击"允许",google将把它们重定向到
**重定向uri**(第5点),其中包括**code**,作为查询字符串参数之一:
http://localhost:5000/google/oauth2callback?代码=…
该代码将用于请求**访问令牌**(第6点),
对API的所有以下请求都是必需的:
`` python
code=get_request_parameter("code");这取决于您的Web框架!
data=google_auth.get_token(
code=code,
grant_type="authorization_code",
)
`````
您可以将其存储在某个地方以备以后使用,例如在会话中或在数据库中:
``python
会话["access_token"]=data["access_token"]
``
提供**访问令牌**的CT方法因提供者而异。一种流行的方法(google支持)是通过
承载头。这里有一个助手快捷方式:
`` python
from requests\u oauth2 importOAuth2BearToken
with requests.session()as s:
s.auth=OAuth2BearToken(访问令牌)
r=s.get("https://www.googleapis.com/plus/v1/people/me")
r.raise for"状态"
data=r.json()
``````
Facebook等其他提供商允许访问令牌作为请求参数传递(在查询字符串中)。你可以这样做:
``python
from requests\u oauth2 import oauth2bearertoken
with requests.session()as s:
s.params={"access\u token":response["access\u token"]}
r=s.get("https://graph.facebook.com/me")
r.raise for\u status()
data=r.json()
```
bserver>;
*oauth 2.0在facebook中:
<;http://developers.facebook.com/docs/authentication/>;
*github oauth 2.0用法:
<;https://developer.github.com/apps/building oauth apps/>;
*您可以使用postbin测试webhook:<;http://www.postbin.org/>;