use*_*023 8 python flask facebook-oauth flask-security
如果我只想使用Facebook登录,例如用户注册和登录,即没有本地注册/登录表格,是否可以使用Flask-Social和Flask-Security?
我查看了Flask-Social示例应用程序和文档,但无法判断这是否可行.在示例应用程序中,用户无法使用Facebook登录,除非他们之前已注册过.在注册示例应用程序后,他们可以将他们的Facebook帐户与其本地帐户相关联.
当我试图调用social.facebook.get_connection()时,我得到了一个,AttributeError 'AnonymousUser' object has no attribute 'id'因为没有current_user,这是在注册/登录后由flask-security定义的.
没有太多额外的工作使用@login_failed.connect_via装饰器,这是可行的.有了app您的一个瓶的应用程序的情况下,它看起来像
@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
user = ds.create_user( ... ) #fill in relevant stuff here
ds.commit()
connection_values['user_id'] = user.id
connect_handler(connection_values, provider)
login_user(user)
db.commit()
return render_template('success.html')
Run Code Online (Sandbox Code Playgroud)
至于填写用于创建用户的相关内容,我只是为密码创建一个随机字符串,并且没有将电子邮件留空的问题.我还在Flask-Social github页面上包含了完全相同的答案.
| 归档时间: |
|
| 查看次数: |
1286 次 |
| 最近记录: |