我试图使用Google:https://github.com/authlib/demo-oauth-client/tree/master/flask-google-login提供的演示源代码将Google https://github.com/authlib/demo-oauth-client/tree/master/flask-google-login实现到我的webapp中,但是我得到了“授权错误401: invalid_client OAuth客户端没有找到”。
在URL queryString中,我还可以看到&client_id=None。
看起来演示代码已经过时了。
我试过重新创建客户ids和秘密,但没有结果。
有人能帮我呈现有效的谷歌登录屏幕吗?
下面是文件。
config.py -在与app.py相同的目录中:
import os
GOOGLE_CLIENT_ID = os.getenv('<client id>')
GOOGLE_CLIENT_SECRET = os.getenv('<client secret>')app.py
from flask import Flask, url_for, session
from flask import render_template, redirect
from authlib.integrations.flask_client import OAuth
app = Flask(__name__)
app.secret_key = '!secret'
app.config.from_object('config')
CONF_URL = 'https://accounts.google.com/.well-known/openid-configuration'
oauth = OAuth(app)
oauth.register(
name='google',
server_metadata_url=CONF_URL,
client_kwargs={
'scope': 'openid email profile'
}
)
@app.route('/')
def homepage():
user = session.get('user')
return render_template('home.html', user=user)
@app.route('/login')
def login():
redirect_uri = url_for('auth', _external=True)
return oauth.google.authorize_redirect(redirect_uri)
@app.route('/auth')
def auth():
token = oauth.google.authorize_access_token()
session['user'] = token['userinfo']
return redirect('/')
@app.route('/logout')
def logout():
session.pop('user', None)
return redirect('/')PIP列表
发布于 2022-11-03 20:13:21
我通过以下几点解决了这个问题:
在Google,凭证部分,从授权的重定向URI中删除尾随'/‘。oauth.register添加了client_id = app.config['GOOGLE_CLIENT_ID']。
https://stackoverflow.com/questions/74306768
复制相似问题