| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package controllers
- import (
- "encoding/json"
- "strings"
- "github.com/astaxie/beego"
- "dashoo.cn/backend/api/models"
- "dashoo.cn/business2/auth"
- "dashoo.cn/business2/userRole"
- "dashoo.cn/utils"
- )
- // Operations about tokens
- type TokenController struct {
- BaseController
- }
- // @Title CreateToken
- // @Description create token
- // @Param body body models.User4CreateToken true "The user info for create token"
- // @Success 200 {object} models.UserToken
- // @Failure 403 body is empty
- // @router / [post]
- func (this *TokenController) Post() {
- var user4CreateToken models.User4CreateToken
- json.Unmarshal(this.Ctx.Input.RequestBody, &user4CreateToken)
- svc := auth.GetAuthServic(utils.DBE)
- var user userRole.Base_User
- if user4CreateToken.Flag == 1 {
- userToken, err := models.CreateToken(user4CreateToken.Username)
- if err != nil {
- beego.Error("token:", err)
- this.Abort("401")
- }
- //写入登录日志
- ip := strings.Split(this.Ctx.Request.RemoteAddr, ":")[0]
- ipaddr := this.Ctx.Request.RemoteAddr
- svc.WriteLoginLog(utils.ToStr(user.Id), user.Username, user.AccCode, ip, ipaddr, "登录成功")
- this.Data["json"] = &userToken
- this.ServeJSON()
- } else {
- if svc.VerifyUser3DES(user4CreateToken.Username, user4CreateToken.Password, &user) {
- userToken, err := models.CreateToken(user4CreateToken.Username)
- if err != nil {
- beego.Error("token:", err)
- this.Abort("401")
- }
- //写入登录日志
- ip := strings.Split(this.Ctx.Request.RemoteAddr, ":")[0]
- ipaddr := this.Ctx.Request.RemoteAddr
- svc.WriteLoginLog(utils.ToStr(user.Id), user.Username, user.AccCode, ip, ipaddr, "登录成功")
- this.Data["json"] = &userToken
- this.ServeJSON()
- } else {
- this.Abort("401")
- }
- }
- }
- // @Title CheckToken
- // @Description check token
- // @Success 200 {string} message
- // @Failure 401 :auth error
- // @router / [get]
- func (this *TokenController) Get() {
- _, err := this.ParseToken()
- if err != nil {
- beego.Error("checkToken:", err)
- this.Abort("401")
- }
- this.Data["json"] = map[string]string{"msg": "Token is validated"}
- this.ServeJSON()
- }
- // @Title Logout
- // @Description Logout
- // @Success 200
- // @router /logout [get]
- func (this *TokenController) Logout() {
- this.Data["json"] = map[string]string{"msg": "logout"}
- this.ServeJSON()
- }
|