首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶-找不到客户端Id

烧瓶-找不到客户端Id
EN

Stack Overflow用户
提问于 2022-11-03 16:47:47
回答 1查看 24关注 0票数 0

我试图使用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相同的目录中:

代码语言:javascript
复制
import os

GOOGLE_CLIENT_ID = os.getenv('<client id>')
GOOGLE_CLIENT_SECRET = os.getenv('<client secret>')

app.py

代码语言:javascript
复制
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列表

  • Authlib==1.1.0
  • Flask==2.2.2
EN

回答 1

Stack Overflow用户

发布于 2022-11-03 20:13:21

我通过以下几点解决了这个问题:

在Google,凭证部分,从授权的重定向URI中删除尾随'/‘。oauth.register添加了client_id = app.config['GOOGLE_CLIENT_ID']

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74306768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档