Python request.url 未返回浏览器中显示的完整 url
Python request.url not returning full url that is shown in the browser
我正在我的应用程序中通过 Microsoft Auth 实现登录。当我去授权 url 并提供我的凭据时,应用程序重定向到我的重定向 uri。在浏览器中我得到这个 url "http://localhost:5000/app/microsoft_signin/callback#code=M.R3_BAY.bc055b02-10a5-be57-8933-191cbb5d6b1d&state=12345" 但是当我尝试使用 request.url 获取此 url 时,我只获取 url“http://localhost:5000/app/microsoft_signin/callback”的这一部分。
这是我的代码:
app.route("/app/microsoft_signin",methods=['GET','POST'])
def microsoft_signin_():
authorization_url = f'{MICROSOFT_CONFIG["MICROSOFT_AUTHORIZATION_URL"]}?client_id={MICROSOFT_CONFIG["MICROSOFT_CLIENT_ID"]}&response_type=code&redirect_uri={MICROSOFT_CONFIG["MICROSOFT_REDIRECT_URI"]}&response_mode=fragment&scope={MICROSOFT_CONFIG["MICROSOFT_SCOPE"]}&state=12345'
return redirect(authorization_url)
@app.route("/app/microsoft_signin/callback",methods=['POST','PUT','GET'])
def microsoft_signin_callback_():
print('!!! CALL BACK HIT SUCCESSFULLY !!!')
print(f'Returned URL is: {request.url}') // http://localhost:5000/app/microsoft_signin/callback
还有其他方法可以完成此操作吗url?我还发现返回的 url 有一些奇怪的地方。在“代码”之前,我得到的是 # 而不是 ?,因此我无法使用此行代码 = request.args.get("code")
获取代码
将response_mode=片段替换为response_mode=查询
我正在我的应用程序中通过 Microsoft Auth 实现登录。当我去授权 url 并提供我的凭据时,应用程序重定向到我的重定向 uri。在浏览器中我得到这个 url "http://localhost:5000/app/microsoft_signin/callback#code=M.R3_BAY.bc055b02-10a5-be57-8933-191cbb5d6b1d&state=12345" 但是当我尝试使用 request.url 获取此 url 时,我只获取 url“http://localhost:5000/app/microsoft_signin/callback”的这一部分。
这是我的代码:
app.route("/app/microsoft_signin",methods=['GET','POST'])
def microsoft_signin_():
authorization_url = f'{MICROSOFT_CONFIG["MICROSOFT_AUTHORIZATION_URL"]}?client_id={MICROSOFT_CONFIG["MICROSOFT_CLIENT_ID"]}&response_type=code&redirect_uri={MICROSOFT_CONFIG["MICROSOFT_REDIRECT_URI"]}&response_mode=fragment&scope={MICROSOFT_CONFIG["MICROSOFT_SCOPE"]}&state=12345'
return redirect(authorization_url)
@app.route("/app/microsoft_signin/callback",methods=['POST','PUT','GET'])
def microsoft_signin_callback_():
print('!!! CALL BACK HIT SUCCESSFULLY !!!')
print(f'Returned URL is: {request.url}') // http://localhost:5000/app/microsoft_signin/callback
还有其他方法可以完成此操作吗url?我还发现返回的 url 有一些奇怪的地方。在“代码”之前,我得到的是 # 而不是 ?,因此我无法使用此行代码 = request.args.get("code")
获取代码将response_mode=片段替换为response_mode=查询