我正在尝试将Dancer2插件:Dancer2::Plugin::Auth::Extensible与我自己的身份验证提供程序一起使用,因为在我正在处理的项目中已经存在一个。
我已经修改了the given example,但是我需要向authenticate_user和users子例程传递两个参数。这个参数是动态的,所以我不能通过配置文件添加它。
我有一个不优雅的方法,将它作为字符串(连接)与用户名一起传入,然后在authenticate_user中拆分它,但这不适用于users子例程。但这并不是正确的做法。
我还尝试将其作为常规参数进行传递,例如
sub authenticate_user {
my ($self, $username_course, $password, $realm,$param) = @_; 但是这不起作用(不知道为什么),而且对于没有参数的users也不起作用。
我认为既然这是一个Dancer2::Plugin,我可以利用其中的一些,但不能确切地说如何适配现有的插件。这是我尝试过的:
package Dancer2::Plugin::Auth::Extensible::Provider::Test;
use Moo;
with "Dancer2::Plugin::Auth::Extensible::Role::Provider";
has authen_param => (is => 'rw');
plugin_keywords 'set_param'; # this fails compilation
sub set_param {
my ($self,$p) = @_;
$self->authen_param($p);
}
sub authenticate_user {
my ($self, $username, $password) = @_;
# use authen_param to authenticate
}
1https://stackoverflow.com/questions/38270300
复制相似问题