36 lines
746 B
Go
36 lines
746 B
Go
package request
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/zhang2092/browser"
|
|
)
|
|
|
|
type Login struct {
|
|
Email string `json:"email" binding:"required,email"`
|
|
Password string `json:"password" binding:"required,min=6"`
|
|
Captcha string `json:"captcha" binding:"required"`
|
|
CaptchaID string `json:"captcha_id" binding:"required"`
|
|
|
|
// 平台信息
|
|
Os string
|
|
Ip string
|
|
Browser string
|
|
Referrer string
|
|
Url string
|
|
}
|
|
|
|
func (login Login) SetAttributes(r *http.Request) Login {
|
|
login.Ip = r.RemoteAddr
|
|
login.Referrer = r.Header.Get("Referer")
|
|
login.Url = r.URL.RequestURI()
|
|
|
|
br, err := browser.NewBrowser(r.Header.Get("User-Agent"))
|
|
if err == nil {
|
|
login.Os = br.Platform().Name()
|
|
login.Browser = br.Name()
|
|
}
|
|
|
|
return login
|
|
}
|