| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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
- }
|