Sadece Tornado ile oynamaya başladım ve birden çok kimlik doğrulama yöntemi sunmak istiyorum. Şu anda benim app tornado.auth.GoogleMixin kullanarak Google'ın hibrid OpenID/oAuth ile çalışıyor ve kimliği doğrulanmamış kullanıcılar otomatik olarak Google'ın auth sayfasına gönderilir.Tornado ile çoklu kimlik doğrulama seçenekleri
Kimliği doğrulanmamış bir kullanıcı başka bir seçenek kullanmak isterse (ör. Yerel auth veya tornado.auth.TwitterMixin), oturum açma işleyicisinde bir auth mekanizması seçmek için mantığı nasıl uygulayabilirim?
Tüm açık yöntemlerim için 'tornado.web.authenticated' dekoratörünü ekledim ve şu anda Google OpenID/oAuth ile çalışmakta olan oturum açma işleyici sınıfım (hemen hemen Tornado örneklerinden):
class AuthLoginHandler(BaseHandler, tornado.auth.GoogleMixin):
@tornado.web.asynchronous
def get(self):
if self.get_argument('openid.mode', None):
self.get_authenticated_user(self.async_callback(self._on_auth))
return
## redirect after auth
self.authenticate_redirect()
def _on_auth(self, user):
## auth fail
if not user:
raise tornado.web.HTTPError(500, 'Google auth failed')
## auth success
identity = self.get_argument('openid.identity', None)
## set identity in cookie
self.set_secure_cookie('identity', tornado.escape.json_encode(identity))
self.redirect('/')
Çözüm önerileri için teşekkür ederiz. basitçe Sonra
(r"/login/google/", GoogleAuthHandler),
(r"/login/facebook/", FacebookAuthHandler),
vb
: Teşekkürler
Yardımlarınız için teşekkür ederiz. – joet3ch