Python 2.7 使用自定义OAuth提供程序创建OAuth
我正在尝试将OAuth与自定义OAuth提供程序结合使用。我已成功地将其与上述服务提供程序(如github)集成。 但当我尝试使用authorize:github和OAuth使用自定义提供程序时,它没有获得authorize,account_info.ok打印为false。 我想做的是使用自定义提供程序,我将能够授权任何可用的OAuth提供程序。 我不知道如何使用上提到的自定义提供程序 这是我的密码:Python 2.7 使用自定义OAuth提供程序创建OAuth,python-2.7,flask,oauth,authorization,flask-sqlalchemy,Python 2.7,Flask,Oauth,Authorization,Flask Sqlalchemy,我正在尝试将OAuth与自定义OAuth提供程序结合使用。我已成功地将其与上述服务提供程序(如github)集成。 但当我尝试使用authorize:github和OAuth使用自定义提供程序时,它没有获得authorize,account_info.ok打印为false。 我想做的是使用自定义提供程序,我将能够授权任何可用的OAuth提供程序。 我不知道如何使用上提到的自定义提供程序 这是我的密码: from flask import Flask from flask_dance.consum
from flask import Flask
from flask_dance.consumer import OAuth2ConsumerBlueprint
from flask import Flask, redirect, url_for
#export OAUTHLIB_INSECURE_TRANSPORT=1
app = Flask(__name__)
app.config['SECRET_KEY']='thisissupposedtobesecretkey'
client_id = "*********************",
client_secret = "********************",
example_blueprint = OAuth2ConsumerBlueprint("github", __name__,
client_id=client_id,
client_secret=client_secret,
scope=None,
base_url="https://api.github.com/",
authorization_url="https://github.com/login/oauth/authorize",
token_url="https://github.com/login/oauth/access_token",
redirect_url=None,
redirect_to=None,
login_url=None,
authorized_url=None,
session_class=None,
backend=None,
)
app.register_blueprint(example_blueprint, url_prefix="/login")
@app.route('/example')
def login():
if not example_blueprint.authorized:
return redirect(url_for('example_blueprint.login'))
try:
account_info=example_blueprint.session.get("/user")
print "i m here ....."
print account_info.ok
return account_info
except Exception as e:
print "i m here .....",e
#
if __name__=='__main__':
app.run(debug=True)
您需要从OAuth2Session实例调用authorized方法,该实例将自动从存储中加载OAuth提供程序的令牌。因此,您需要更改以下代码行:
@app.route('/example')
def login():
if not example_blueprint.authorized:
return redirect(url_for('example_blueprint.login'))
到
干杯您收到了什么错误消息?
@app.route('/example')
def login():
if not example_blueprint.session.authorized:
return redirect(url_for('example_blueprint.login'))