2011-08-18 5 views
9

私は、再生フレームワークの「安全」モジュールを使用しています。私は自分のアプリケーションの/ loginルートから投稿することでユーザーにログインできます。再生フレームワークの使い方ユーザーが作成された後でユーザーをログインさせるセキュアなモジュール

ただし、新しいユーザーを作成/サインアップするときに、そのユーザーがユーザー作成後に自動的にログインするようにしたいと思います。これは、プログラムで動作するようには思えません。つまり、ログインするためのフォームを投稿する必要がないためです。私のユーザーのための

私の現在のコードは、アクションを作成するようなものです:

public static void create(@Required @Email String email, @Required String password, @Required @Equals("password") String passwordConfirmation) { 
     User user = new User(email); 
     user.password = new Crypto().encryptAES(password); 
    user.save(); 

     try { 
     Secure.authenticate(email, password, false); // <== this is the action in secure module mapped to /login 
    } catch(Throwable t) { 
     t.printStackTrace(); 
    } 
    } 

だから私は手動でSecure.authentication(username, password, remember)メソッドを呼び出しますが、これはちょうど私のターゲットページをログインページに私をリダイレクトしません。

私はSecure.authenticateをリクエスト/レスポンス経由で直接呼び出すため、クッキーなどが設定されていないと感じていますが、わかりません。

アイデア? (ユーザーが正常にサインアップした後に)

答えて

9

ひとつのアイデアは、予想通り

session.put("username", username); 

これは確かSecure.connected()の戻りを行いますセッションでユーザ名を設定することができます。あなたが必要な場合は

は、「私を覚えて」

if(remember){ 
    response.setCookie("rememberme", Crypto.sign(username) + "-" + username, "30d"); 
} 

は、実はこれはセキュアモジュールは、認証が成功した後に何をするかです。 チェックSecure module

+0

これは本当に欠けていた作品です - ありがとう! – Damien

関連する問題