2

我有两条路线

一个在“under”下,从“userinfo”进行身份验证,另一个用于公共

post '/public' => sub {
    my $c = shift;
    my $submitter = $c->param('submitter');
    my $password = $c->param('password');

    my $url = Mojo::URL->new('/v1/time')->userinfo("$submitter:$password");

    $c->redirect_to( $url );
};

under(sub {
    my $c = shift;
    $c->app->log->debug( Dumper($c->req->url) );
    my ($un, $pw) = split ':', $c->req->url->to_abs->userinfo;
    # do authentication here
    # .....  
});

any ['GET', 'POST'] => '/v1/time' => sub {
    shift->render(json => { now => scalar(localtime) });
};

为什么我似乎无法将 userinfo 数据传递给新的 url?

Data::Dumper 的结果是

bless( {
                 'base' => bless( {
                                    'scheme' => 'http',
                                    'port' => 'xxxxx',
                                    'host' => 'xxxxxxxxx.corpnet2.com'
                                  }, 'Mojo::URL' ),
                 'query' => bless( {
                                     'pairs' => []
                                   }, 'Mojo::Parameters' ),
                 'path' => bless( {
                                    'charset' => 'UTF-8',
                                    'path' => '/v1/time'
                                  }, 'Mojo::Path' )
               }, 'Mojo::URL' );
4

1 回答 1

0

乔尔实际上已经回答了这个问题。

https://github.com/mojolicious/mojo/wiki/Upgrading#mojourl-authority-and-userinfo https://github.com/mojolicious/mojo/issues/1006

于 2018-11-26T08:40:53.943 回答