oauth-2.0 像在Postman中一样在Python中获取访问令牌

gudnpqoy  于 2022-10-31  发布在  Postman
关注(0)|答案(2)|浏览(259)

我试着通过Python请求一个访问令牌,它是与API交互所必需的。我使用程序“Postman”来了解这个过程,请看这里:http://api.sharefile.com/rest/index/postman.aspx
Postman 可以选择在“授权”选项卡下请求访问代码(OAuth 2.0)来获得授权。在我输入了所有需要的信息并点击“请求令牌”按钮后,我被重定向到一个我想使用API的网站。它看起来像这个窗口:http://api.sharefile.com/rest/oauth2.aspx
登录后,Postman将返回一个带有访问令牌的窗口。
现在我想用Python执行这些操作,但是就我所知,似乎没有基于Web的登录身份验证的解决方案。
使用(Link)这样的代码,我可以向服务器发送请求,但无法请求一个网站,在那里我可以输入登录数据。
那么,是否有可能在Python中执行与Postman相同的操作?如果有可能,是否有可能自动输入登录凭据?

8hhllhi2

8hhllhi21#

我发现我可以通过oauth刷新访问令牌。所以最初我使用Selenium通过oauth2的登录页面第一次获得访问令牌,模拟一个人。当我获得密钥时,我在密钥过期时刷新它。

yyyllmsg

yyyllmsg2#

import requests

client_id = 'xxx'

client_secret = 'xxx'

# scope = f'api://{client_id}/user.access'

scope = f'api://{client_id}/.default'

token_url = 'https://login.microsoftonline.com/xxx/oauth2/v2.0/token'

d = {
    "client_id": client_id,
    "scope": scope,
    "client_secret": client_secret,
    "grant_type": "client_credentials",
}

r = requests.post(token_url, data=d)

access_token = r.json()['access_token']

相关问题