プレイからのリダイレクトに問題があります。形。問題は、ルートの処理方法にあると思います。ユーザーは、最初にセキュリティ キーを使用して login from index.hmtl にアクセスするか、(qr コード リダイレクトを使用して) access_token を含む有効なパスを直接入力することにより、dashboard.html にアクセスできる必要があります。
私がやろうとしていることは次のとおりです。
1) index.html のフォームを使用してログイン (ルート: Application.index)
これが私のフォームです(index.htmlにあります):
<form action="@{Dashboard.authenticate()}" method="POST" name="login">
<input name="key" type="password" maxlength="128" value="${flash.key}">
<input class="button" id="btnLogin" type="submit" value="Login">
</form>
2) 認証して、dashboard.html にリダイレクトします (ルート: Dashboard.dashboard)
public static void dashboard(String access_token) {
/*
...some code
*/
render(username);
}
public static void authenticate(String key) {
/*
...some code
*/
dashboard(access_token);
}
ここに私のルートファイルがあります:
# Home page
GET / Application.index
POST /dashboard Dashboard.authenticate
GET /dashboard Dashboard.dashboard
http://localhost:9000/dashboard?access_token=0000のような URL から直接 Dashboard(String access_token) を呼び出すと、ダッシュボード ルートは正常に機能 しますが、認証時に呼び出すログイン フォームを使用してログインしようとすると (String key ) この URL http://localhost:9000/dashboard?access_token&key=1234を取得します。keyは auth() 関数に送信される変数です。明らかに私のせいはルートにありますが、私はロジックを試してテストしましたが、それが健全であることは 100% 確信しています。私は Play 1.2.4 を使用しています。この問題に 2 日間費やしましたが、何か提案があればよろしくお願いします。