次のコードがあります。
$r->find('user')->via('post')->over(authenticated => 1);
そのルートを考えると、Mojolicious::Plugin::Authentication を使用してセットアップされた認証済みチェックを通過するユーザー ルートに到達できます。
そのルートに別の「オーバー」を追加したい。
$r->find('user')->via('post')->over(authenticated => 1)->over(access => 1);
ただし、認証された「オーバー」をオーバーライドするようです。
次のような名前でルートを分割してみました。
my $auth = $r->route('/')->over(authenticated => 1)
->name('Authenticated Route');
$access = $auth->route('/user')->over(access => 1)->name('USER_ACCESS');
しかし、それはまったく機能しませんでした。どちらのオーバーもアクセスされていません。
私のルートは、MojoX::JSON::RPC::Service を使用して設定された /user、/item などです。したがって、サブルートを設定するための /user/:id のようなものはありません。
次のような条件があります。
$r->add_condition(
access => sub {
# do some stuff
},
);
$r->route('/user')->over(access => 1); の 'access' です。
つまり、以下を使用すると、ルートは正常に機能します。
$r->find('user')->via('post')->over(authenticated => 1);
しかし、2 番目のルートを追加できません。
では、これらのルートを複数の条件で設定する際に何が欠けているのでしょうか? 単一のルート /route_name に複数の条件を追加することはできますか?