瀏覽代碼

feat:增加HTTP接口登录校验

lifei6671 6 年之前
父節點
當前提交
827965b492
共有 2 個文件被更改,包括 15 次插入2 次删除
  1. 2 1
      conf/app.conf.example
  2. 13 1
      models/Member.go

+ 2 - 1
conf/app.conf.example

@@ -137,7 +137,8 @@ ldap_filter=objectClass=posixAccount
 
 ############# HTTP自定义接口登录 ################
 http_login_url=
-
+#md5计算的秘钥
+http_login_secret=hzsp*THJUqwbCU%s
 ##################################
 
 ###############配置CDN加速##################

+ 13 - 1
models/Member.go

@@ -2,6 +2,8 @@
 package models
 
 import (
+	"crypto/md5"
+	"encoding/hex"
 	"encoding/json"
 	"errors"
 	"fmt"
@@ -9,6 +11,7 @@ import (
 	"net/http"
 	"net/url"
 	"regexp"
+	"strconv"
 	"strings"
 	"time"
 
@@ -164,7 +167,16 @@ func (m *Member) httpLogin(account, password string) (*Member, error) {
 		return nil, ErrMemberAuthMethodInvalid
 	}
 
-	val := url.Values{"": []string{""}}
+	val := url.Values{
+		"account":  []string{account},
+		"password": []string{password},
+		"time":     []string{strconv.FormatInt(time.Now().Unix(), 10)},
+	}
+	h := md5.New()
+	h.Write([]byte(val.Encode() + beego.AppConfig.DefaultString("http_login_secret","")))
+
+	val.Add("sn", hex.EncodeToString(h.Sum(nil)))
+
 	resp, err := http.PostForm(urlStr, val)
 	if err != nil {
 		beego.Error("通过接口登录失败 -> ", urlStr, account, err)