From 827965b49252b7230c4d6808604e2005227641a8 Mon Sep 17 00:00:00 2001 From: lifei6671 Date: Tue, 21 May 2019 10:09:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0HTTP=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf.example | 3 ++- models/Member.go | 14 +++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/conf/app.conf.example b/conf/app.conf.example index 6474aed6..1a4605a2 100644 --- a/conf/app.conf.example +++ b/conf/app.conf.example @@ -137,7 +137,8 @@ ldap_filter=objectClass=posixAccount ############# HTTP自定义接口登录 ################ http_login_url= - +#md5计算的秘钥 +http_login_secret=hzsp*THJUqwbCU%s ################################## ###############配置CDN加速################## diff --git a/models/Member.go b/models/Member.go index 7f720ee4..6d4fccf0 100644 --- a/models/Member.go +++ b/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)