Przeglądaj źródła

ptr解决无法用ptr账户登陆方法

Signed-off-by: lijunqing <lijunqing@dashoo.cn>
lijunqing 6 lat temu
rodzic
commit
9d0b052877

+ 5 - 4
src/dashoo.cn/backend/api/business/oilrtx/RtxService.go

@@ -175,7 +175,7 @@ func (s *RtxService) HandleSendMsg(username string, tomobile string, message str
 	return resp
 }
 
-func (s *RtxService) HandlePtrLogin(username string, password string, BaseUser string) RtxRespToken {
+func (s *RtxService) HandlePtrLogin(username string, password string, BaseUser string) int {
 	var list []map[string]string
 	client := &http.Client{}
 	var ptrUser PtrUser
@@ -199,15 +199,16 @@ func (s *RtxService) HandlePtrLogin(username string, password string, BaseUser s
 	// jsonBlob, _ := ioutil.ReadAll(resp.Body)
 	var rtxRespToken RtxRespToken
 	// json.Unmarshal(jsonBlob, &rtxRespToken)
-
+	flag := 0
 	rtxRespToken.Code = 2000
 	if rtxRespToken.Code == 2000 {
 		sql := "select 1 from " + BaseUser + " where UserName='" + username + "'"
 
 		list, _ = s.DBE.QueryString(sql)
 		if len(list) > 0 {
-
+			flag = 1
 		} else {
+			flag = 2
 			var baseuser userRole.Base_User
 			pwd, key, _ := utils.TripleDesEncrypt(password)
 
@@ -226,5 +227,5 @@ func (s *RtxService) HandlePtrLogin(username string, password string, BaseUser s
 		log.Println("Code:" + string(rtxRespToken.Code) + ",Message:" + rtxRespToken.Message + ",Token:" + rtxRespToken.Token)
 	}
 
-	return rtxRespToken
+	return flag
 }

+ 1 - 1
src/dashoo.cn/backend/api/controllers/rtx/rtx.go

@@ -77,7 +77,7 @@ func (this *RtxController) PtrLogin() {
 	resp := rtxSvc.HandlePtrLogin(userName, passWord, BaseUserName)
 	log.Println("userName= ", userName)
 	var datainfo DataInfo
-	datainfo.Items = resp.Code
+	datainfo.Items = resp
 	this.Data["json"] = &datainfo
 	this.ServeJSON()
 }

+ 21 - 3
src/dashoo.cn/backend/api/controllers/token.go

@@ -6,9 +6,9 @@ import (
 
 	"github.com/astaxie/beego"
 
+	"dashoo.cn/backend/api/models"
 	"dashoo.cn/business2/auth"
 	"dashoo.cn/business2/userRole"
-	"dashoo.cn/backend/api/models"
 	"dashoo.cn/utils"
 )
 
@@ -28,7 +28,8 @@ func (this *TokenController) Post() {
 	json.Unmarshal(this.Ctx.Input.RequestBody, &user4CreateToken)
 	svc := auth.GetAuthServic(utils.DBE)
 	var user userRole.Base_User
-	if svc.VerifyUser3DES(user4CreateToken.Username, user4CreateToken.Password, &user) {
+
+	if user4CreateToken.Flag == 1 {
 		userToken, err := models.CreateToken(user4CreateToken.Username)
 
 		if err != nil {
@@ -43,8 +44,25 @@ func (this *TokenController) Post() {
 		this.Data["json"] = &userToken
 		this.ServeJSON()
 	} else {
-		this.Abort("401")
+		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

+ 10 - 9
src/dashoo.cn/backend/api/models/token.go

@@ -26,6 +26,7 @@ type Claims struct {
 type User4CreateToken struct {
 	Username string `json:"username"`
 	Password string `json:"password"`
+	Flag     int    `json:"flag"`
 }
 
 // 返回客户端的token信息
@@ -35,16 +36,16 @@ type UserToken struct {
 
 // 从token中获取的用户信息
 type UserInfo struct {
-	Id           string
-	Username     string
-	Realname     string
-	AccCode      string
-	Roles        string
-	Power        string
-	DepartmentId string
-	Description  string
+	Id            string
+	Username      string
+	Realname      string
+	AccCode       string
+	Roles         string
+	Power         string
+	DepartmentId  string
+	Description   string
 	IsCompanyUser int
-	Superior     string
+	Superior      string
 }
 
 // 建立JWT Token

+ 9 - 4
src/dashoo.cn/frontend_web/src/pages/login.vue

@@ -187,7 +187,6 @@
                       >
                         <el-option label="PTR认证" :value="2"></el-option>
                         <el-option label="普通账户" :value="1"></el-option>
-                       
                       </el-select>
                     </el-input>
                   </el-form-item>
@@ -374,7 +373,8 @@ import api from "@/api/rtxservice/rtx";
       noticeList: [], //通知列表
       fileList: [], //文档列表
       activeName: "first",
-      activeIndex: "0"
+      activeIndex: "0",
+      flag: 0
     };
   },
 
@@ -467,7 +467,11 @@ import api from "@/api/rtxservice/rtx";
       api
         .rtxLogin(params, this.$axios)
         .then(res => {
-          if (res.data.items === 2000) {
+          if (res.data.items === 1) {
+            this.flag = 1;
+            this.login();
+          } else if (res.data.items === 2) {
+            this.flag = 2;
             this.login();
           } else {
             this.$message.warning("账号或密码错误");
@@ -500,7 +504,8 @@ export default class Login extends Vue {
           await this.$store.dispatch("auth/login", {
             fields: {
               username: this.model.username.replace(/(^\s*)|(\s*$)/g, ""),
-              password: this.model.password.replace(/(^\s*)|(\s*$)/g, "")
+              password: this.model.password.replace(/(^\s*)|(\s*$)/g, ""),
+              flag: this.flag
             }
           });
           if (process.env.appclient == "lims") {