viv*_*vkv 6 oauth github-api flask python-2.7
所以我尝试使用 Github OAuth API 在 Flask 中学习 OAuth,并且我正在使用flask_dance它的库。我能够在 Github 上对自己进行身份验证并返回到我的应用程序,但在其显示404 Not Found Error和 url 中http://localhost:5000/login/authorized?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application...,回调 url 似乎是正确的,因为它是我在 github 上提供的内容,但仍然显示redirect_uri mismatch。我正在阅读此处的文档,并了解到我们可以redirect_uri从请求中删除参数,但我不确定如何执行此操作。(我使用的是 Windows 10)
任何帮助都会很好。谢谢。
from flask import Flask, redirect, url_for
from werkzeug.contrib.fixers import ProxyFix
from flask_dance.contrib.github import make_github_blueprint, github
app = Flask(__name__)
app.wsgi_app = ProxyFix(app.wsgi_app)
app.secret_key = "supersekrit"
blueprint = make_github_blueprint(
client_id="xxxxxxxxx",
client_secret="xxxxxxxx",
)
app.register_blueprint(blueprint, url_prefix="/login")
@app.route("/signup")
def index():
if not github.authorized:
return redirect(url_for("github.login"))
resp = github.get("/user")
assert resp.ok
return "You are @{login} on GitHub".format(login=resp.json()["login"])
if __name__ == "__main__":
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
您的回调 URL 不正确 - 它应该是http://localhost:5000/login/github/authorized
\n\n\n\nFlask-Dance 的文档表示,代码创建了一个蓝图“github”,其中包含两个视图“/github”和“/github/authorized”。该蓝图还配置了 url_prefix 为“/login”,因此您的回调 URL 需要为http://localhost:5000/login/github/authorized。
\n\n\n\n此代码创建了一个蓝图,用于实现成为 OAuth 舞蹈中的消费者所需的视图。该蓝图有两个视图:/github,\n 这是用户开始 OAuth 舞蹈时访问的视图,\n /github/authorized,这是用户在 OAuth 舞蹈结束时重定向到的视图。 OAuth 舞蹈。因为我们将url_prefix设置为\n /login,所以最终结果是视图位于/login/github和\n /login/github/authorized。第二个视图是\xe2\x80\x9c授权回调\n URL\xe2\x80\x9d,您在创建应用程序时必须告知 GitHub。
\n
| 归档时间: |
|
| 查看次数: |
6049 次 |
| 最近记录: |