//注册 func (u *UserController) SignUp(user models.User) revel.Result { user.Validation(u.q, u.Validation) if u.Validation.HasErrors() { u.Validation.Keep() return u.Redirect(routes.UserController.SignUpRedirect()) } notEncrypted := user.Password user.Password = models.EncryptPassword(user.Password) user.ValidateCode = strings.Replace(uuid.NewUUID().String(), "-", "", -1) if !user.Save(u.q) { u.Flash.Error("注册用户失败") return u.Redirect(routes.UserController.SignUpRedirect()) } subject := "激活账号 —— 奇享-向世界分享我们" content := `这封信是由 奇享 发送的。 您收到这封邮件,是由于在 奇享 获取了新用户注册地址使用 了这个邮箱地址。如果您并没有访问过 奇享, 或没有进行上述操作,请忽 略这封邮件。 您不需要退订或进行其他进一步的操作。 ---------------------------------------------------------------------- 新用户注册说明 ---------------------------------------------------------------------- 如果您是 奇享 的新用户,或在修改您的注册 Email 时使用了本地址,我们需 要对您的地址有效性进行验证以避免垃圾邮件或地址被滥用。 您只需点击下面的链接即可进行用户注册, "http://localhost:9000/user/validate/` + user.ValidateCode + `" (如果上面不是链接形式,请将该地址手工粘贴到浏览器地址栏再访问) 感谢您的访问,祝您使用愉快!` //发送验证邮件 go sendMail(subject, content, []string{user.Email}) //注册成功登陆 return u.SignIn(user.Email, notEncrypted, "") }
func (u *UserController) SignIn(email, password, remember string) revel.Result { u.Validation.Required(email).Message("请输入邮箱") if u.Validation.HasErrors() { u.Validation.Keep() u.FlashParams() return u.Redirect(routes.UserController.SignInRedirect()) } //查询用户 user := new(models.User) condition := qbs.NewCondition("email = ?", email). And("password = ?", models.EncryptPassword(password)) //models.EncryptPassword(password) u.q.Condition(condition).Find(user) if user.Id == 0 { u.Validation.Keep() u.FlashParams() u.Flash.Out["email"] = email u.Flash.Error("邮箱或密码错误!") return u.Redirect(routes.UserController.SignInRedirect()) } u.Session["userName"] = user.UserName u.Session["userId"] = strconv.Itoa(int(user.Id)) u.Session["isLogin"] = "******" //记住密码 if remember == "1" { fmt.Println(remember) } preUrl, ok := u.Session["preUrl"] if ok { return u.Redirect(preUrl) } return u.Redirect(routes.App.Index()) }