后台登录
后台登录页面效果图如下:
该页面主要实现登录功能,在用户输入对应的数据并点击登录按钮的时候,在后台获取对应的信息,根据账号在数据库中查询数据,如果没有该用户或出现其他错误会在前台给与对应的提示。如果用户勾选了记住一周需要将用户登录的信息存储到cookie中,并设置cookie的存活时间为一周。
func (this *AccountController) Login() {
//判断该请求是不是通过点击点击登录按钮传递过来的
if this.GetString("dosubmit") == "yes" {
//获取账号并去除两边的空格
account := strings.TrimSpace(this.GetString("account"))
//获取密码并去除两边的空格
password := strings.TrimSpace(this.GetString("password"))
//获取是否记住一周并去除两边的空格
remember := strings.TrimSpace(this.GetString("remember"))
//判断账号和密码是否为空
if account != "" && password != "" {
//创建用户结构体
var user = &models.User{}
//将获取到的账号赋值给结构体
user.Username = account
//根据账号查询用户,并且判断查询到的密码和用户输入的密码通过MD5哈希之后的结果是否一样
if user.Read("username") != nil || user.Password != models.Md5([]byte(password)) {
this.Data["errmsg"] = "账号或密码错误!"
}else if user.Active == 0 {
//判断该账户是否激活
this.Data["errmsg"] = "该账号尚未激活!"
}else {
//登录次数加一
user.Logincount += 1
//更新登录次数
user.Update("logincount")
//对密码进行哈希
authkey := models.Md5([]byte(password))
//判断用户是否勾选了记住一周
if remember == "yes" {
//设置一个存活一周的cookie
this.Ctx.SetCookie("auth", strconv.Itoa(user.Id) + "|" + authkey, 60*60*24*7)
}else {
//设置一个cookie,默认存活3600秒
this.Ctx.SetCookie("auth", strconv.Itoa(user.Id) + "|" + authkey)
}
//重定向,网址A随时有可能改主意,重新显示本身的内容或转向其他的地方
this.Redirect("/admin", 302)
}
}
}
//设置模板名称
this.TplName = "admin/account_login.html"
}
系统信息
效果图如下:
该页面主要实现了系统信息以及博客系统中的一些主要信息。
func (this *IndexController) Index() {
this.display()
//主机名称
this.Data["hostname"], _ = os.Hostname()
//go语言版本
this.Data["gover"] = runtime.Version()
//操作系统
this.Data["os"] = runtime.GOOS
//处理器架构,例如:amd64(x64):64位处理器,x32:32位处理器
this.Data["arch"] = runtime.GOARCH
//cpu数量
this.Data[&#