我想使用Flask-Social提供仅限facebook登录。我使用了flask-social-example提供的标准模型。在github上我找到了这个方法:
@login_failed.connect_via(app)
def on_login_failed(sender, provider, oauth_response):
connection_values = get_connection_values_from_oauth_response(provider, oauth_response)
ds = current_app.security.datastore
password = ''.join([random.choice(string.ascii_letters + string.digits) for n in xrange(10)])
full_name = connection_values['full_name']
role = Role.query.filter_by(name='virtual').first()
user = ds.create_user(
full_name=full_name,
password=encrypt_password(password))
ds.add_role_to_user(user, role)
ds.commit()
connection_values['user_id'] = user.id
connect_handler(connection_values, provider)
login_user(user)
db.session.commit()
return render_template('index.html')
我可以使用它创建用户,稍后可以毫无问题地登录,但是首先尝试它无法重定向。我在github上发现了未解决的问题,但尚未解决Improper redirect #56。
如果它的库有错,那么目前在Flask中实现这一目标的最佳方法是什么?我希望能够拥有虚拟的'只有facebook / twitter等登录的用户和可以将他们的帐户链接到oauth配置文件的本地用户。