浏览代码

一键登录

xyxie 1 年之前
父节点
当前提交
11fccd77f9
共有 3 个文件被更改,包括 56 次插入0 次删除
  1. 46 0
      controllers/auth.go
  2. 5 0
      models/admin.go
  3. 5 0
      utils/constants.go

+ 46 - 0
controllers/auth.go

@@ -0,0 +1,46 @@
+package controllers
+
+import (
+	"encoding/base64"
+	"encoding/json"
+	"eta/eta_forum_hub/models"
+	"eta/eta_forum_hub/utils"
+	"fmt"
+	"github.com/beego/beego/v2/server/web"
+)
+
+type AuthController struct {
+	web.Controller
+}
+
+// CreateAuthCode
+// @Description 生成编码
+// @Param	request	body models.CreateAuthCodeReq true "type json string"
+// @Success 200 {string} string "获取成功"
+// @Router /auth/auth_code [post]
+func (this *AuthController) CreateAuthCode() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	var req models.CreateAuthCodeReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	prefix := map[int]string{
+		1: utils.CACHE_FORUM_AUTH_CODE_PREFIX,
+		2: utils.CACHE_CRM_AUTH_CODE_PREFIX,
+	}
+	str := base64.URLEncoding.EncodeToString([]byte(req.AdminName))
+	key := fmt.Sprint(prefix[req.Source], str)
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "保存成功"
+	br.Data = key
+}

+ 5 - 0
models/admin.go

@@ -198,3 +198,8 @@ func GetSysUserByAdminName(adminName string) (item *Admin, err error) {
 	err = o.Raw(sql, adminName).QueryRow(&item)
 	err = o.Raw(sql, adminName).QueryRow(&item)
 	return
 	return
 }
 }
+
+type CreateAuthCodeReq struct {
+	Source    int `description:"来源: 1-CRM; 2-ETA"`
+	AdminName string
+}

+ 5 - 0
utils/constants.go

@@ -238,3 +238,8 @@ var MonthQuarterMap = map[int]int{
 var FrequencyDaysMap = map[string]int{
 var FrequencyDaysMap = map[string]int{
 	"天": 1, "周": 7, "月": 30, "季": 90, "年": 365,
 	"天": 1, "周": 7, "月": 30, "季": 90, "年": 365,
 }
 }
+
+const (
+	CACHE_CRM_AUTH_CODE_PREFIX   = "eta_forum:crm_auth_code:"   // 免密登录Code-CRM
+	CACHE_FORUM_AUTH_CODE_PREFIX = "eta_forum:forum_auth_code:" // 免密登录Code-ETA
+)