package service import ( "github.com/druidcaesa/gotool" "strings" "ulink-admin/frame" "ulink-admin/modules/system/models/model" "ulink-admin/pkg/jwt/admin" "ulink-admin/pkg/jwt/common" ) type LoginService struct { UserService *UserService `inject:""` } // Login 用户登录业务处理 func (s LoginService) Login(name string, password string) string { user := s.UserService.GetUserByUserName(name) if user == nil { frame.Throw(frame.BUSINESS_CODE, "用户不存在") } if !gotool.BcryptUtils.CompareHash(user.Password, password) { frame.Throw(frame.BUSINESS_CODE, "用户或密码错误") } //生成token record := new(model.SysUser) s.UserService.GetById(user.Id, record) token, err := admin.NewJWT().CreateUserToken(common.LOGIN_TYPE_PASSWORD, record) if err != nil { frame.Throw(frame.BUSINESS_CODE, "用户或密码错误") } //数据存储到redis中 return token } // LoginUser 获取当前登录用户 func (s LoginService) LoginUser(c *frame.Context) *model.SysUser { token := c.Request.Header.Get("Authorization") str := strings.Split(token, " ") j := admin.NewJWT() // parseToken 解析token包含的信息 claims, err := j.ParseToken(str[1]) if err != nil { gotool.Logs.ErrorLog().Println(err) } info := claims.UserInfo return info }