2013-08-01 54 views
7

Sadece Facebook Girişini kullanmak istiyorsam, örneğin kullanıcı kaydı ve giriş için Flask-Sosyal ve Flask-Güvenlik kullanmak mümkün mü? , yani yerel kayıt/giriş formu yok mu?Olasman Sağlayıcısı ile Flask-Social Kullanımı Sadece, Yerel Kayıt Yoktur/Giriş Formu

Flask-Social örnek uygulamasına ve belgelerine baktım ama bunun mümkün olup olmadığını anlayamadım. Örnek uygulamada, kullanıcılar daha önce kayıt olmadıkça Facebook ile giriş yapamazlar. Örnek uygulamaya kaydolduktan sonra, Facebook hesaplarını yerel hesaplarıyla ilişkilendirebilirler.

ben kayıt/giriş yaptıktan sonra şişe-güvenlik tarafından tanımlanan hiçbir current_user, var, çünkü ben bir AttributeError 'AnonymousUser' object has no attribute 'id' var() social.facebook.get_connection aramaya çalıştım.

+0

@theva Yukarıdaki gibi kodu projenize yazmanız gerekmektedir. Lütfen https://github.com/mattupstate/flask-social-example/blob/master/app/__init__.py#L51 adresini inceleyiniz. Kodu nereye koyacağınızı bileceksiniz. BTW, yukarıdaki kodun "db.commit()" ifadesini "ds.commit()" olarak değiştirmem gerekiyor. – amos

cevap

4

@login_failed.connect_via dekoratörünü kullanarak çok fazla iş yapmadan yapılabilir. kullanıcıyı oluşturmak için ilgili şeyler doldurmak için, sadece şifre rastgele bir dize oluşturmak ve sorunlar bırakarak olmadı gibi bir Flask app sizin örneği olarak app ile,

@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') 

gibi görünecektir e-posta null. Aynı cevabı sadece Flask-Social github page numaralı telefona da dahil ettim.

+1

Bu eski bir gönderi olduğunu biliyorum ama @ login_failed.connect_via dekoratör için dokümanı bulamıyorum ... Bu Flask-Sosyal veya Flask-Güvenlik'in bir parçası mı yoksa başka bir şey mi? – theva

+1

@theva, şu an tetiklenen bir işarettir: https://github.com/mattupstate/flask-social/blob/develop/flask_social/views.py#L192 – erik