2016-07-20 6 views
0

私はScala - Playアプリケーションをやっているので、管理者が自分の権利を変更したときにユーザーを切断したいと思っています。たとえば、ユーザーがログに記録されていて、管理者が自分のアカウントを管理者の種類にアップグレードすると、このユーザーを切断する必要があります。Play Framework - ユーザーを切断する

+0

これは、ユーザーがログインしているかどうかによって決まりますか?あなたはSessionにuserIdを保存しますか? – vdebergue

+0

Y'es私はuserIdを保存します –

答えて

0

userIdSessionに保存した場合は、Sessionにユーザーの権利を追加する必要があります。

ユーザーが接続すると、そのセッションの権利をデータベースのものにチェックすることができます。一致しない場合は、ユーザーをログインページにリダイレクトできます。ユーザー認証は、ユーザーに保存されている秘密によって生成されたトークンで行われている場合

:ユーザーがログインしている場合は、ここに答えはあなたのアプリケーションがどのように決定するかに特に依存するので、ちょうどすべての拠点をカバーする

+0

いいえ、私の問題はユーザーが接続するときではありませんが、彼が既に接続されている場合、私は彼のdidnとして彼の古い役割から古いページを参照することができます接続が切断された –

+0

ユーザーがサーバーにページを照会すると、すでにユーザーが接続されているかどうかをチェックしています。おそらく 'SecuredAction'を使用してセッションで' userId'が定義されているかどうかを確認します。もう一方のチェックを追加する必要があります:もし彼が役割を持っていなければあなたはエラーを送信し、そうでなければページを送信します – vdebergue

0

すべてのリクエストで有効性がチェックされていれば、そのユーザーの新しい秘密を生成することができ、既存のトークンはすべて無効になります。