2017-10-30 10 views
1

operator/adminがユーザーとしてログインできるときに機能を実装したいと思います。ユーザーの資格情報で何かをしてから戻り、オペレーター/管理者として続けるユーザーとログインするにはどうすればよいですか?

/as_user/:user_idルートの下にアプリケーション全体をマウントしようとしています。だからリクエストが来たら私は:user_idにセッションを調整する。 GET /as_user/17/packages要求が無限ループにアプリケーションの秋に来るとき、私は

detour

$app->routes->route('/as_user/:app_user')->detour(app => $app); 

しかし、この場合に試す

はまた、私は?U=17クエリパラメータを追加すると思います。しかし、私はどのようにしてこのようにコードを書き直すのか分かりません。すべてのリンクは?U=17を付けてレンダリングする必要があります。

他のユーザーとログインするにはどうすればよいのですか?

答えて

0

は、私は答えを見つけたようだ:

$r->under('/as_user/:user_id', sub{ 
    # FIX THE SESSION HERE. Just like: 
    # $_[0]->session->{ user_id } = _[0]->match->stack->[-1]->{ user_id }; 
    return 1; # Required to not break the dispatch chain 
})->route('/')->detour('App'); 

代わりにアプリケーションインスタンスのアプリケーション・クラスを渡す必要とMojoliciousのは、それ自体をインスタンス化します。

PS。無限ループは、循環参照のためかもしれません。 (ただし、Mojoliciousのチェック、参考文献here

UPD 無限ループためbug

関連する問題