我在从剧中重定向时遇到问题!形式。我认为问题在于我如何处理路线。这个想法是,用户应该能够通过 index.hmtl 使用安全密钥登录,或者直接在包含 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
如果我通过以下 URL 直接调用仪表板(字符串 access_token),仪表板路由工作正常:http://localhost:9000/dashboard?access_token=0000 但是如果我尝试使用调用身份验证的登录表单登录(字符串键) 我得到这个 URL http://localhost:9000/dashboard?access_token&key=1234其中 key 是发送到 auth() 函数的 var。显然我的错在于路线,但我已经尝试并测试了逻辑,我 100% 确定它是正确的。我正在使用 Play 1.2.4 我在这个问题上花了两天时间,如果有任何建议,我将不胜感激。