oauth2.0 为什么我对google的API的POST请求返回一个重定向URI不匹配错误?

z31licg0  于 2023-10-15  发布在  Go
关注(0)|答案(2)|浏览(177)

初学者。当我尝试用我的授权来交换访问google的API的访问令牌时,我一直遇到重定向uri不匹配的错误,但是在检查我的google cloud控制台时,我的授权重定向uri是完全匹配的,包括http和尾随的斜杠。我授权的JavaScript源代码也完全匹配。用户授权过程正常进行并返回一个代码
下面是我的授权过程和令牌交换代码:

@app.route("/youtubeauth")
def youtubeauth():
    yt_auth_dict={
        "scope":"https://www.googleapis.com/auth/youtube",
        "client_id":youtube_client_id,
        "response_type":"code",
        "redirect_uri":"http://localhost:8888/tokenexchange",
        "prompt":"consent"
    }
    yt_auth_url="https://accounts.google.com/o/oauth2/auth?"+urllib.parse.urlencode(yt_auth_dict)    
    print(yt_auth_url)
    return redirect (yt_auth_url)

@app.route("/tokenexchange")
def tokenexchange():

    code = request.args.get('code')
    if code:
        #obtaining access token
        print(code)
        params = {
            'code': code,
            'client_id': youtube_client_id,
            'client_secret': youtube_client_secret,
            'redirect_uri': 'http://localhost:8888/example',
            'grant_type': 'authorization_code'
            }
        
        tokenrequest=requests.post('https://oauth2.googleapis.com/token',data=params)
        return tokenrequest.json()

Screenshot of my redirect uris:

qfe3c7zg

qfe3c7zg1#

重定向URI必须与您在Google Developer Console中配置的URI完全匹配。错误消息将告诉您应用程序从哪个重定向uri发送。
Google OAuth2: How the fix redirect_uri_mismatch error. Part 2 server sided web applications.

iyr7buue

iyr7buue2#

将用于交换访问令牌的授权代码(/tokenexchange)的重定向URI更改为与提示用户进行授权(/youtubeauth)的URI相同

相关问题