码农笔录博客源码
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

126 rindas
3.0 KiB

pirms 6 gadiem
package controllers
pirms 6 gadiem
import (
"github.com/astaxie/beego"
"beeblog/service"
"beeblog/models"
"strings"
"crypto/md5"
"time"
"strconv"
"encoding/hex"
pirms 6 gadiem
"fmt"
pirms 6 gadiem
)
pirms 6 gadiem
type UserController struct {
beego.Controller
}
func (u *UserController) LoginPage() {
pirms 6 gadiem
u.TplName = "login.html"
pirms 6 gadiem
}
pirms 6 gadiem
func (u *UserController) RegistPage() {
u.TplName = "regist.html"
}
pirms 6 gadiem
pirms 6 gadiem
func (u *UserController) PersonBlog() {
u.TplName = "ublogs.html"
}
pirms 6 gadiem
func (this *UserController) Login() {
username := this.GetString("username")
userpwd := this.GetString("userpwd")
if username == "" {
this.Data["json"] = models.ReurnError(1,"用户名为空")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
if len(username) < 4 {
this.Data["json"] = models.ReurnError(1,"用户名最低4位")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
if userpwd == "" {
this.Data["json"] = models.ReurnError(1,"密码为空")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
if len(userpwd) < 6 {
this.Data["json"] = models.ReurnError(1,"密码最低6位")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
user, error := service.FindByUserName(username)
if error == nil && user != nil {
h := md5.New()
h.Write([]byte(userpwd + user.Salt))
userpwd = hex.EncodeToString(h.Sum(nil))
if userpwd == user.UserPwd {
this.Data["json"] = models.ReurnSuccess("")
pirms 6 gadiem
this.SetSession("userid", user.Id)
pirms 6 gadiem
this.SetSession("nickname", user.NickName)
pirms 6 gadiem
fmt.Println(this.CruSession)
pirms 6 gadiem
} else {
this.Data["json"] = models.ReurnError(1,"用户名或密码错误")
pirms 6 gadiem
}
} else {
this.Data["json"] = models.ReurnError(1,"用户名不存在")
pirms 6 gadiem
}
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
func (this *UserController) Regist() {
username := this.GetString("username")
userpwd := this.GetString("userpwd")
username = strings.Replace(username, " ", "", -1)
userpwd = strings.Replace(userpwd, " ", "", -1)
if username == "" {
this.Data["json"] = models.ReurnError(1,"用户名为空")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
if len(username) < 4 {
this.Data["json"] = models.ReurnError(1,"用户名最低4位")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
if userpwd == "" {
this.Data["json"] = models.ReurnError(1,"密码为空")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
if len(userpwd) < 6 {
this.Data["json"] = models.ReurnError(1,"密码最低6位")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
user, _ := service.FindByUserName(username)
if user != nil {
this.Data["json"] = models.ReurnError(1,"用户已经存在")
pirms 6 gadiem
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
h := md5.New()
h.Write([]byte(strconv.FormatInt(time.Now().Unix(), 10) + beego.AppConfig.String("host")))
salt := hex.EncodeToString(h.Sum(nil))
h = md5.New()
h.Write([]byte(userpwd + salt))
userpwd = hex.EncodeToString(h.Sum(nil))
pirms 6 gadiem
user = &models.User{UserName: username,NickName:username, UserPwd: userpwd, Salt: salt}
pirms 6 gadiem
err := service.SaveUser(user)
if err == nil {
pirms 6 gadiem
this.Data["json"] = models.ReurnSuccess("")
pirms 6 gadiem
} else {
this.Data["json"] = models.ReurnError(1,"注册失败")
pirms 6 gadiem
}
this.ServeJSON()
pirms 6 gadiem
return
pirms 6 gadiem
}
pirms 6 gadiem
func (this *UserController) Logout() {
this.DelSession("userid")
this.DelSession("nickname")
this.Redirect("/",302)
return
}