|
@@ -1,11 +1,14 @@
|
|
package login
|
|
package login
|
|
|
|
|
|
import (
|
|
import (
|
|
- "net/http"
|
|
|
|
|
|
+ "ddpf/model/session"
|
|
|
|
+ "ddpf/model/user"
|
|
"ddpf/response"
|
|
"ddpf/response"
|
|
|
|
+ "fmt"
|
|
"github.com/tangs-drm/go-tool/log"
|
|
"github.com/tangs-drm/go-tool/log"
|
|
"github.com/tangs-drm/go-tool/util"
|
|
"github.com/tangs-drm/go-tool/util"
|
|
- "ddpf/model/user"
|
|
|
|
|
|
+ "net/http"
|
|
|
|
+ "strings"
|
|
)
|
|
)
|
|
|
|
|
|
func Login(w http.ResponseWriter, r *http.Request) {
|
|
func Login(w http.ResponseWriter, r *http.Request) {
|
|
@@ -14,16 +17,16 @@ func Login(w http.ResponseWriter, r *http.Request) {
|
|
var msg string
|
|
var msg string
|
|
var data util.Map
|
|
var data util.Map
|
|
defer func() {
|
|
defer func() {
|
|
|
|
+ msg = response.Message[code]
|
|
response.WriteResponse(w, code, msg, err, data)
|
|
response.WriteResponse(w, code, msg, err, data)
|
|
}()
|
|
}()
|
|
- username := r.PostFormValue("username")
|
|
|
|
- password := r.PostFormValue("password")
|
|
|
|
|
|
+ username := r.FormValue("account")
|
|
|
|
+ password := r.FormValue("password")
|
|
|
|
|
|
if len(username) < 1 || len(password) < 1 {
|
|
if len(username) < 1 || len(password) < 1 {
|
|
err = util.Error("username/password contain a empty value")
|
|
err = util.Error("username/password contain a empty value")
|
|
log.Error("Login receive invalid username/password ->(%v)", err)
|
|
log.Error("Login receive invalid username/password ->(%v)", err)
|
|
- code = 1
|
|
|
|
- msg = "用户名/密码为空"
|
|
|
|
|
|
+ code = 100
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
@@ -33,13 +36,11 @@ func Login(w http.ResponseWriter, r *http.Request) {
|
|
if err != nil {
|
|
if err != nil {
|
|
log.Error("Login receive username(%v) ExistUser error ->(%v)", username, err)
|
|
log.Error("Login receive username(%v) ExistUser error ->(%v)", username, err)
|
|
code = 2
|
|
code = 2
|
|
- msg = "系统错误"
|
|
|
|
return
|
|
return
|
|
}
|
|
}
|
|
if !isExist {
|
|
if !isExist {
|
|
log.Debug("Login receive username(%v) is not exist", username)
|
|
log.Debug("Login receive username(%v) is not exist", username)
|
|
- code = 3
|
|
|
|
- msg = "用户不存在"
|
|
|
|
|
|
+ code = 101
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
@@ -48,17 +49,47 @@ func Login(w http.ResponseWriter, r *http.Request) {
|
|
usr, err = user.CheckPassword(username, password)
|
|
usr, err = user.CheckPassword(username, password)
|
|
if err != nil {
|
|
if err != nil {
|
|
log.Error("Login receive username(%v) check password error ->(%v)", username, err)
|
|
log.Error("Login receive username(%v) check password error ->(%v)", username, err)
|
|
- code = 4
|
|
|
|
- msg = "系统错误"
|
|
|
|
|
|
+ code = 2
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- if nil == usr {
|
|
|
|
|
|
+ if len(usr.Id) < 1 {
|
|
log.Debug("Login receive username(%v) password is incorrect", username)
|
|
log.Debug("Login receive username(%v) password is incorrect", username)
|
|
- code = 5
|
|
|
|
- msg = "密码错误"
|
|
|
|
|
|
+ code = 102
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
- // 写cookie
|
|
|
|
- //session.CreateSession()
|
|
|
|
-}
|
|
|
|
|
|
+ // 创建session
|
|
|
|
+ sess, err := session.CreateSession(usr.Id)
|
|
|
|
+ if err != nil {
|
|
|
|
+ log.Error("Login create session by uid(%v) error ->(%v)", usr.Id, err)
|
|
|
|
+ code = 2
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ cookie := &http.Cookie{Name: "token", Value: sess.Id, Domain: "/"}
|
|
|
|
+ http.SetCookie(w, cookie)
|
|
|
|
+ log.Debug("Login with account(%v) success", username)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// DoLogin 为了测试的时候方便调用的方式,用户测试
|
|
|
|
+func DoLogin(username string, password string) (util.Map, error) {
|
|
|
|
+ url := fmt.Sprintf("%v/login?account=%v&password=%v", SrvAddr(), username, password)
|
|
|
|
+
|
|
|
|
+ var headers = map[string]string{
|
|
|
|
+ "Content-Type": "application/x-www-form-urlencoded",
|
|
|
|
+ }
|
|
|
|
+ var reqBody = util.Map{
|
|
|
|
+ "account": username,
|
|
|
|
+ "password": password,
|
|
|
|
+ }
|
|
|
|
+ body := strings.NewReader(util.S2Json(reqBody))
|
|
|
|
+ res, err := util.HTTPPostMap(url, headers, body)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ if res.Int("code") != 0 {
|
|
|
|
+ return nil, util.Error("%v", res.Int("code"))
|
|
|
|
+ }
|
|
|
|
+ return res, nil
|
|
|
|
+}
|