FLASK,如何将 Google 身份验证重定向到本地 html.file
FLASK, How to redirect Google autentication to a local html.file
大家好,我已经使用 API 实现了 Google 身份验证。
我希望一旦用户通过身份验证,页面就会重定向到本地 html/Javascript 应用程序。
我正在尝试以下不起作用的代码,因为它没有找到正确的 url.
from flask import Flask,重定向,url_for,会话,请求,render_template
从 authlib.integrations.flask_client 导入 OAuth
进口 os
从日期时间导入 timedelta
# App config
app = Flask(__name__)
app.secret_key = "random secret"
# oAuth Setup
oauth = OAuth(app)
google = oauth.register(
name='google',
client_id='',
client_secret='',
access_token_url='https://accounts.google.com/o/oauth2/token',
access_token_params=None,
authorize_url='https://accounts.google.com/o/oauth2/auth',
authorize_params=None,
api_base_url='https://www.googleapis.com/oauth2/v1/',
client_kwargs={'scope': 'openid email profile'},
)
@app.route('/')
def hello_world():
email = dict(session).get('email',None)
return f'Hello, {email}!'
@app.route('/login')
def login():
google = oauth.create_client('google')
redirect_uri = url_for('authorize', _external=True)
return google.authorize_redirect(redirect_uri)
@app.route('/authorize')
def authorize():
google = oauth.create_client('google')
token = google.authorize_access_token()
resp = google.get('userinfo')
user_info = resp.json()
session['email'] = user_info['email']
return redirect('file:///home/luca/Desktop/ft_userdata/ProvaLogIn/prova.htm')
if __name__ == "__main__":
app.run(debug=True)
未找到
在服务器上找不到请求的 URL。如果您手动输入 URL,请检查您的拼写并重试。
我要渲染的 html 只是一个 html 本地文件,上面写着 hello
您需要在您的项目中创建名为 templates
的文件夹,在此文件夹中您将添加 html 文件,在您的情况下它将是 prova.html
并将 return 语句更改为
return render_template('prova.html')
您的目录树应该是什么样子(一般视图)
├── app.py
├── static
└── templates
└── status.html
希望这能解决您的问题
大家好,我已经使用 API 实现了 Google 身份验证。 我希望一旦用户通过身份验证,页面就会重定向到本地 html/Javascript 应用程序。 我正在尝试以下不起作用的代码,因为它没有找到正确的 url.
from flask import Flask,重定向,url_for,会话,请求,render_template 从 authlib.integrations.flask_client 导入 OAuth 进口 os 从日期时间导入 timedelta
# App config
app = Flask(__name__)
app.secret_key = "random secret"
# oAuth Setup
oauth = OAuth(app)
google = oauth.register(
name='google',
client_id='',
client_secret='',
access_token_url='https://accounts.google.com/o/oauth2/token',
access_token_params=None,
authorize_url='https://accounts.google.com/o/oauth2/auth',
authorize_params=None,
api_base_url='https://www.googleapis.com/oauth2/v1/',
client_kwargs={'scope': 'openid email profile'},
)
@app.route('/')
def hello_world():
email = dict(session).get('email',None)
return f'Hello, {email}!'
@app.route('/login')
def login():
google = oauth.create_client('google')
redirect_uri = url_for('authorize', _external=True)
return google.authorize_redirect(redirect_uri)
@app.route('/authorize')
def authorize():
google = oauth.create_client('google')
token = google.authorize_access_token()
resp = google.get('userinfo')
user_info = resp.json()
session['email'] = user_info['email']
return redirect('file:///home/luca/Desktop/ft_userdata/ProvaLogIn/prova.htm')
if __name__ == "__main__":
app.run(debug=True)
未找到 在服务器上找不到请求的 URL。如果您手动输入 URL,请检查您的拼写并重试。
我要渲染的 html 只是一个 html 本地文件,上面写着 hello
您需要在您的项目中创建名为 templates
的文件夹,在此文件夹中您将添加 html 文件,在您的情况下它将是 prova.html
并将 return 语句更改为
return render_template('prova.html')
您的目录树应该是什么样子(一般视图)
├── app.py
├── static
└── templates
└── status.html
希望这能解决您的问题