在我的应用中,我有一个登录按钮,该按钮调用/oauth2authorize
,效果很好。在服务器端注册的authorize_callback
方法中,我获得了params中的凭据,并且可以毫无问题地调用Google API端点。
oauth2 = UserOAuth2()
def create_app(debug=False, testing=False, config_overrides=None):
app = Flask(__name__, template_folder='templates')
app.config.update(
SECRET_KEY=b"XXX",
GOOGLE_OAUTH2_CLIENT_ID='XXXX',
GOOGLE_OAUTH2_CLIENT_SECRET='XXXX'
)
oauth2.init_app(
app,
scopes=[MY_SCOPES],
authorize_callback=request_user_info)
def request_user_info(credentials):
http = httplib2.Http()
credentials.authorize(http)
resp, content = http.request(u'https://www.googleapis.com/userinfo/v2/me')
问题是,当我想稍后在另一条路线中检索这些凭据以对Google API进行其他调用时。
我尝试不使用@oauth2.required
装饰器,然后oauth2.credentials
也是None
,oauth2.email
和oauth2.user_id
。
我尝试使用@oauth2.required
装饰器,当我尝试调用路由时,身份验证过程再次开始(并且失败,我不确定为什么,可能是URL配置错误)。
基本上,我想要获得的是凭据对象(就像在authorize_callback
中传递的那样),因此我可以发出API请求。
看看我在做什么错吗?
仅供参考:这是我使用的flask-util库(属于oauth2client)
谢谢