我正在尝试首次设置Catalyst。经过一段时间的调试以找出验证不起作用的原因后,意识到sql查询看起来像
选择me.user_id,me.password,me.role FROM users me WHERE(密码 =?):'abcd'
users表(对于测试pwd是明文)
user_id PRI 密码 角色
Users.pm有 的 PACKAGE - > set_primary_key( “USER_ID”);
查询是在密码而不在user_id上可能有什么问题?
由于
答案 0 :(得分:0)
听起来配置哈希的构造不正确。
我建议id_field
指向password
而不是user_id
。这是我的应用程序的配置(我使用的是Class:DBI,而不是你可能的DBIx :: Class,但这并不重要)。 login_name
相当于您的user_id
,即用户ID存储在其中的字段:
my $authenticationconfig = {
default_realm => 'login_name',
login_name => {
credential => {
class => 'Password',
password_field => 'password',
password_type => 'crypted'
},
store => {
class => 'Class::DBI',
user_class => '__myapp__::__myusertable__',
id_field => 'login_name' ## have you got password here?
}
},
... # other realms
};