重定向在Play Framework和Chrome浏览器中不起作用

时间:2018-09-03 21:13:52

标签: playframework-2.6

我有一个Play申请。可以使用URL http://localhost:9000/home访问应用程序的主页。

我创建了一个注册按钮。注册后,该应用程序将创建一个URL并将该URL通过电子邮件发送给用户

电子邮件中的html非常简单。

<a href=http://localhost:9000/ws/users/signup/ca67d0b4-8900-4672-a83d-e1eac1711333>Click here to verify email</a> /signup/之后的长号是令牌。

单击上面的链接时,将调用我的应用程序的verifyUser操作,该操作在经过一些处理后要求客户端重定向到首页(如上所述)

def verifyUser(token:String) = Action.async{
    implicit request => {
      println("verifyUser action called with token: "+token) //TODOM - add proper handling and response
      val tokenFutureOption:Future[Option[UserToken]] = userTokenRepo.find(UserTokenKey(UUID.fromString(token)))
      for(tokenOption<- tokenFutureOption) yield {
        tokenOption match {
          case Some(userToken) =>{
            println("finding user for token "+token)
            val userOptionFuture = userRepo.findUser(userToken.loginInfo)
            for(userOption <- userOptionFuture) yield {
              userOption match {
                case Some(user) =>{
                  println("found user "+user + "for token "+token)
                  val newInternalProfile = user.profile.internalProfileDetails.get.copy(confirmed=true)
                  println("old internal profile: "+user.profile.internalProfileDetails.get)
                  println("new internal profile: "+newInternalProfile)
                  val newProfile = UserProfile(Some(newInternalProfile),user.profile.externalProfileDetails)
                  println("old profile: "+user.profile)
                  println("new profile: "+newProfile)
                  val confirmedUser = user.copy(profile=newProfile)
                  val userOptionFuture :Future[Option[User]] = userRepo.updateUser(confirmedUser)
                  for(userOption <- userOptionFuture) yield {
                    userTokenRepo.remove(UserTokenKey(UUID.fromString(token)))

                  }
                }
                case None =>{
                  println("user doesn't exist for token "+userToken)

                }
              }
            }
            Redirect("localhost:9000/home")

          }
          case None =>{
            Redirect("localhost:9000/home")
          }
        }
      }
    }
  }

我在电子邮件中获得了URL,然后单击它,浏览器转到URL http://localhost:9000/ws/users/signup/ca67d0b4-8900-4672-a83d-e1eac1711333,调用了verifyUser Action,但浏览器没有重定向到{{1 }}。看来浏览器正在向localhost:9000/home发送请求,但没有收到服务器的响应,请参见下图。

我在做什么错了?

enter image description here enter image description here

0 个答案:

没有答案