在没有表单的情况下使用Scala Play进行登录,可以通过以下步骤实现:
以下是一个示例代码:
@()(implicit messages: Messages)
<h2>Login</h2>
@helper.form(action = routes.LoginController.loginSubmit()) {
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<button type="submit">Login</button>
}
POST /login controllers.LoginController.loginSubmit()
package controllers
import play.api.mvc._
class LoginController extends Controller {
def loginSubmit = Action { implicit request =>
val username = request.body.asFormUrlEncoded.get("username").head
val password = request.body.asFormUrlEncoded.get("password").head
// 进行登录验证逻辑
if (username == "admin" && password == "password") {
// 登录成功,将用户信息存储在会话中
Redirect(routes.ProfileController.showProfile()).withSession("username" -> username)
} else {
// 登录失败,显示错误消息并返回登录页面
Redirect(routes.LoginController.showLogin()).flashing("error" -> "Invalid username or password")
}
}
def showLogin = Action { implicit request =>
Ok(views.html.login())
}
}
package controllers
import play.api.mvc._
class ProfileController extends Controller {
def showProfile = Action { implicit request =>
// 从会话中获取用户信息进行身份验证
request.session.get("username").map { username =>
// 用户已登录,显示个人资料页面
Ok(s"Welcome, $username!")
}.getOrElse {
// 用户未登录,重定向到登录页面
Redirect(routes.LoginController.showLogin())
}
}
}
这是一个简单的使用Scala Play进行登录的示例。在实际应用中,可以根据需求进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云