浏览代码

add param to AddToGlobalTokenStore and move the code of login to AddToGlobalTokenStore

huangrf 6 年之前
父节点
当前提交
ab23932412
共有 2 个文件被更改,包括 39 次插入35 次删除
  1. 6 1
      utils/auth/auth.go
  2. 33 34
      utils/auth/light_auth.go

+ 6 - 1
utils/auth/auth.go

@@ -59,7 +59,7 @@ func GetAuth(t string)IAuth{
  * @brief: 添加token到全局缓存中
  * @param1 userInfo: 用户信息
  */
-func AddToGlobalTokenStore(userInfo *sysmodel.SysUser)*sysmodel.LoginReturnInfo{
+func AddToGlobalTokenStore(c *entitys.CtrlContext, userInfo *sysmodel.SysUser)*sysmodel.LoginReturnInfo{
 	token := &entitys.Token{}
 	timestamp := uint64(time.Now().UnixNano())
 	timestamp_str := strconv.FormatUint(timestamp, 10)
@@ -88,6 +88,11 @@ func AddToGlobalTokenStore(userInfo *sysmodel.SysUser)*sysmodel.LoginReturnInfo{
 	data.Type = userInfo.Type
 	data.Domain = userInfo.Domain
 
+	// 查找用户对应角色
+	var roles []sysmodel.SysRole
+	c.App.GetBusinessDb(userInfo.Domain).SQL("select sys_role.* from sys_user_role, sys_role where sys_user_role.role_id = sys_role.id and sys_role.del_flag = 0 and sys_user_role.user_id = ? order by sys_role.priority asc", userInfo.Id).Find(&roles)
+	data.Roles = roles
+
 	return &data
 }
 

+ 33 - 34
utils/auth/light_auth.go

@@ -5,9 +5,7 @@ import (
 	"git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
 	sysmodel "git.qianqiusoft.com/qianqiusoft/light-apiengine/models"
 	sysutils "git.qianqiusoft.com/qianqiusoft/light-apiengine/utils"
-	"strconv"
 	"strings"
-	"time"
 )
 
 type LightAuth struct {
@@ -30,44 +28,45 @@ func (la *LightAuth) Login(c *entitys.CtrlContext) {
 	ret, err := c.PlatformDbEngine.SQL(sysmodel.SqlUserLogin, logininfo.Account).Get(&user)
 	if ret && err == nil {
 		//TODO check password
-		timestamp := uint64(time.Now().UnixNano())
 		md5Pwd := sysutils.HashPassword(logininfo.Password, "")
 		//密码错误
 		if !strings.EqualFold(user.Password, md5Pwd) {
 			c.Ctx.JSON(200, sysmodel.SysReturn{400, "password incorrect!", nil})
 			return
 		}
-		token := &entitys.Token{}
-		timestamp_str := strconv.FormatUint(timestamp, 10)
-		sec_tooken := sysutils.GenerateToken(logininfo.Account + timestamp_str)
-		if v := sysutils.GetGlobalTokenStore().Get(sec_tooken); v == nil {
-			token.AccessToken = sec_tooken
-			token.RefreshToken = sec_tooken
-			token.LoginID = logininfo.Account
-			token.UserId = user.Id
-			token.Result = 200
-			//token.Password = pwd
-			token.ServerIp = ""
-			token.Domain = user.Domain
-			sysutils.GetGlobalTokenStore().Set(sec_tooken, token)
-			//sysutils.GetGlobalTokenStore().Set(token.LoginID+user.Domain, token)
-		} else {
-			token = v
-		}
-		data := sysmodel.LoginReturnInfo{}
-		data.Id = user.Id
-		data.LoginId = user.LoginId
-		data.Name = user.Name
-		data.Mobile = user.Mobile
-		data.Email = user.Email
-		data.Token = token.AccessToken
-		data.Type = user.Type
-		data.Domain = user.Domain
-
-		// 查找用户对应角色
-		var roles []sysmodel.SysRole
-		c.App.GetBusinessDb(user.Domain).SQL("select sys_role.* from sys_user_role, sys_role where sys_user_role.role_id = sys_role.id and sys_role.del_flag = 0 and sys_user_role.user_id = ? order by sys_role.priority asc", user.Id).Find(&roles)
-		data.Roles = roles
+		data := AddToGlobalTokenStore(c, &user)
+		//timestamp := uint64(time.Now().UnixNano())
+		//token := &entitys.Token{}
+		//timestamp_str := strconv.FormatUint(timestamp, 10)
+		//sec_tooken := sysutils.GenerateToken(logininfo.Account + timestamp_str)
+		//if v := sysutils.GetGlobalTokenStore().Get(sec_tooken); v == nil {
+		//	token.AccessToken = sec_tooken
+		//	token.RefreshToken = sec_tooken
+		//	token.LoginID = logininfo.Account
+		//	token.UserId = user.Id
+		//	token.Result = 200
+		//	//token.Password = pwd
+		//	token.ServerIp = ""
+		//	token.Domain = user.Domain
+		//	sysutils.GetGlobalTokenStore().Set(sec_tooken, token)
+		//	//sysutils.GetGlobalTokenStore().Set(token.LoginID+user.Domain, token)
+		//} else {
+		//	token = v
+		//}
+		//data := sysmodel.LoginReturnInfo{}
+		//data.Id = user.Id
+		//data.LoginId = user.LoginId
+		//data.Name = user.Name
+		//data.Mobile = user.Mobile
+		//data.Email = user.Email
+		//data.Token = token.AccessToken
+		//data.Type = user.Type
+		//data.Domain = user.Domain
+		//
+		//// 查找用户对应角色
+		//var roles []sysmodel.SysRole
+		//c.App.GetBusinessDb(user.Domain).SQL("select sys_role.* from sys_user_role, sys_role where sys_user_role.role_id = sys_role.id and sys_role.del_flag = 0 and sys_user_role.user_id = ? order by sys_role.priority asc", user.Id).Find(&roles)
+		//data.Roles = roles
 
 		c.Ctx.JSON(200, sysmodel.SysReturn{200, "", data})
 	} else {