我在构建应用程序,其中一个包管理多个身份验证方法。允许多种身份验证方法的Python类结构
现在,它支持LDAP 和 PAM 但我想在未来,它支持多几个。
我有 PAM.py
和 LDAP.py
例如PAM.py内容包:
import pam
class pam_auth:
def __init__(self, username=None, password=None):
self.username=username
self.password=password
def login(self):
res_auth=pam.authenticate(username=self.username, password=password)
return res_auth
,并在另一个包我隔壁班的登录:
class Login:
def __init__(self,method=None):
self.authmethod=method
def login(self):
res_login=self.authmethod.login()
return res_login
现在我正在构建我的授权码,如:
p=pam_auth()
p.username="pep"
p.password="just"
l=Login(method=p)
print l.login
而且我相信这不是最好的方式来做到这一点,并且以多种方式和不同的方法来进行认证。 例如,可以像?:
l=Login(method=PAM.pam_auth)
l.username="pep"
l.password="just"
print l.login()
¿什么是我必须在登录级或PAM类改变这种方式来工作?
相反,我相信前一种方法比后者灵活得多。另外,这就是在许多工作解决方案中设计身份验证的方法...... –
http://en.wikipedia.org/wiki/Strategy_pattern –