要在Flask中使用Google OAuth2进行构建,可以使用Flask-Dance库来实现。以下是一个示例代码:
from flask import Flask, redirect, url_for
from flask_dance.contrib.google import make_google_blueprint, google
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key'
blueprint = make_google_blueprint(
client_id='your-client-id',
client_secret='your-client-secret',
scope=['profile', 'email']
)
app.register_blueprint(blueprint, url_prefix='/login')
@app.route('/')
def index():
if not google.authorized:
return redirect(url_for('google.login'))
resp = google.get('/oauth2/v2/userinfo')
assert resp.ok, resp.text
return f'You are {resp.json()["email"]} on Google'
if __name__ == '__main__':
app.run()
在上面的代码中,我们使用Flask-Dance的make_google_blueprint
函数创建了一个Google OAuth2蓝图,并将其注册到Flask应用中。然后,我们定义了一个主页路由/
,在该路由中,我们首先检查用户是否已经通过Google OAuth2进行了授权,如果没有授权,则将用户重定向到Google登录页面。如果用户已经授权,我们使用google.get
方法获取用户的个人信息,并返回给用户。
请注意,使用Flask-Dance库需要安装flask-dance
库。你可以使用以下命令安装:
pip install flask-dance
希望这可以帮助你在Flask中使用Google OAuth2进行构建。