Catalyst::Plugin::Authentication
如果用户 uesrid 由域(即复合键)限定,那么最有效的工作方式是什么?它支持这个功能吗?我正在专门研究使用Catalyst::Plugin::Authentication::DBI
,但如果它没有当前功能,我不反对分叉、修补、重新创建它。
我需要使用特定密码登录特定域名。似乎 /all/C:P:A
模块依赖于简单的用户 ID / 密码组合。欢迎其他示例和提示。
Catalyst::Plugin::Authentication
如果用户 uesrid 由域(即复合键)限定,那么最有效的工作方式是什么?它支持这个功能吗?我正在专门研究使用Catalyst::Plugin::Authentication::DBI
,但如果它没有当前功能,我不反对分叉、修补、重新创建它。
我需要使用特定密码登录特定域名。似乎 /all/C:P:A
模块依赖于简单的用户 ID / 密码组合。欢迎其他示例和提示。
Catalyst::Authentication::Store::DBIx::Class 支持在您喜欢的任何类型的密钥上查找用户,因为您提供的所有身份验证信息(指定的密码字段除外)都将转换为数据库查询,您$c->authenticate({ last_name => "Fred", favorite_color => "Blue" })
如果你愿意,可以做。
如果您编写Realm或Store ,几乎您能想象到的任何事情都是可能的,并且没有理由让它们变得复杂——只需实现一两个方法并继承其余方法的类。你必须使用哪一个取决于你的应用程序正在做什么的细节——find_user
在领域中覆盖会更容易;写一个新的 Store 会有点棘手。
真正的答案是Catalyst::Plugin::Authentication
要求from_session
并且for_user
只处理序列化的密钥:for_user
返回序列化的密钥,from_session
返回用户。这会产生一个问题,因为目前在其角色实现或在其实现C:P:A:DBI
中不允许多密钥用户。奇怪的是,它确实允许在 find_user 的用户检索中使用复杂的键值条件。目前,缺点是假设所有用户都使用 uid/guid/pkid 等标识。from_session
for_user
为了让用户使用复合键标识,查询条件必须附加到存储中,或者缓存在for_user
序列化键中。两者都可以通过补丁来实现。
奇怪的是,我在3 年前创建 LDAP 存储时也遇到了同样的困惑。
在我对其进行修补、分叉或有人向Catalyst::Plugin:: Authentication::Store::DBI
. 我已经重写了这个模块,它可以在http://github.com/EvanCarroll/Catalyst-Authentication-Store-DBI