Dancer2身份验证

时间:2016-07-08 15:24:03

标签: perl authentication dancer

我尝试使用Dancer2插件:Dancer2::Plugin::Auth::Extensible和我自己的身份验证提供程序,因为我正在处理的项目中存在一个。

我已经调整了the given example,但是我需要将几个参数传递给authenticate_userusers子例程。该参数是动态的,因此我无法通过配置文件添加它。

我有一个不合理的方法将用户名作为字符串(连接)传入,然后将其拆分为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
}
1

1 个答案:

答案 0 :(得分:0)

似乎我可以使用会话来存储我需要的信息。我需要确保将参数存储在会话中,然后使用$self->plugin->dsl->session->data->{param_name}检索它。