简单的登录页面导致太多的重定向错误
问题描述:
所以我想在Grails中创建一个简单的登录页面,并且我的浏览器不断收到重定向错误。我还没有将登录详细信息连接到数据库,并且您应该使用“admin”和“password”登录,但无论我输入的用户名和密码是否正确或不正确,我都会收到“太多的重定向错误”在我的浏览器中。简单的登录页面导致太多的重定向错误
建议您删除Cookie的操作无效!
User.groovy
package loginmysql
class User {
String userName
String password
String fullName
String toString(){
fullName
}
static constraints = {
userName (unique:true)
password(password:true)
fullName()
}
}
UserController.groovy
package loginmysql
class UserController {
def index() { }
def login() {
if (params.username == "admin" && params.password == "password"){
flash.message="login succeded!!!"
session.user="admin" // keep info on who connected
}else{
flash.message="login failed!!!"
}
redirect(action: "login") // return to index page again and display login message
}
def logout() {
session.user = null // no user logged in
redirect(action: "login") // go to index page again
}
}
index.gsp中
<%@ page import="loginmysql.User" %>
<!DOCTYPE html>
<html>
<head>
<meta name="layout" charset="utf-8" content="main"/>
<title></title>
<style type="text/css">
label{
float: left;
width: 65px;
}
</style>
</head>
<body>
<g:if test="${flash.message}"
<div class="message">
${flash.message}
</div>
</g:if>
<g:if test="${session.user}">
<br/>
Logged as : ${session.user} | <g:link action="logout">Logout</g:link>
</g:if>
<g:else>
<g:form action="login" style="padding-left:200px">
<div style="width: 220px">
<label>Username:</label> <input type="text" name="username"/>
<label>Password:</label> <input type="password" name="password"/>
<label> </label> <input type="submit" value="login"/>
</div>
</g:form>
</g:else>
</body>
</html>
错误(在Chrome)
本页面无法正常工作
*计算机本地主机试图太多重定向
尝试删除Cookie
ERR_TOO_MANY_REDIRECTS
答
在您总是重新调整的login()
行动的结尾无论如何,请回到login
。
redirect(action: "login")
如果你得到一个“成功”的登录,您应该重定向其他地方,以防止无限重定向循环。
if (params.username == "admin" && params.password == "password") {
flash.message="login succeded!!!"
session.user="admin" // keep info on who connected
redirect(action: "index")
} else {
flash.message="login failed!!!"
}
+0
是啊,我意识到我一直在重定向到同一页面,我忘了将重定向更改为index.gsp而不是login.gsp。 谢谢! –
你应当认真考虑使用类似的认证插件[弹簧安全(http://grails-plugins.github.io/grails-spring-security-core/)。 – doelleri