123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- package model
- import (
- "crypto/md5"
- "encoding/hex"
- "fmt"
- "strconv"
- xtime "go-common/library/time"
- )
- const (
- // EmptyFace empty face
- EmptyFace = "http://static.hdslb.com/images/member/noface.gif"
- _cloudSalt = "bi_clould_tencent_01"
- _leak = 1
- )
- // FullFace account full face.
- func (m *Info) FullFace() string {
- if m.Face == "" {
- return EmptyFace
- }
- return fmt.Sprintf("http://i%d.hdslb.com%s", m.Mid%3, m.Face)
- }
- // Token token resp.
- type Token struct {
- Mid int64 `json:"mid"`
- AppID int32 `json:"appid"`
- AccessToken string `json:"access_key"`
- CreateAt int64 `json:"create_at"`
- UserID string `json:"userid"`
- Uname string `json:"uname"`
- Expires int64 `json:"expires"`
- Permission string `json:"permission"`
- }
- // LoginToken login token.
- type LoginToken struct {
- Mid int64 `json:"mid"`
- AccessKey string `json:"access_key"`
- Expires int64 `json:"expires"`
- }
- // RSAKey rsa key.
- type RSAKey struct {
- Hash string `json:"hash"`
- Key string `json:"key"`
- }
- // RenewToken renew token resp.
- type RenewToken struct {
- Expires int64 `json:"expires"`
- }
- // AsoAccount aso account.
- type AsoAccount struct {
- Mid int64 `json:"mid"`
- UserID string `json:"userid"`
- Uname string `json:"uname"`
- Pwd string `json:"pwd"`
- Salt string `json:"salt"`
- Email *string `json:"email"`
- Tel *string `json:"tel"`
- CountryID int64 `json:"country_id"`
- MobileVerified int8 `json:"mobile_verified"`
- Isleak int8 `json:"isleak"`
- Ctime xtime.Time `json:"-"`
- Mtime xtime.Time `json:"-"`
- }
- // ResRegV3 ResRegV3
- type ResRegV3 struct {
- Mid int `json:"mid"`
- }
- // ResRegV2 ResRegV2
- type ResRegV2 struct {
- Mid int `json:"mid"`
- AccessKey string `json:"accessKey"`
- }
- // ResReg ResReg
- type ResReg struct {
- Mid int `json:"mid"`
- }
- // ResByTel ResByTel
- type ResByTel struct {
- Mid int `json:"mid"`
- AccessKey string `json:"accessKey"`
- }
- // ResCaptcha ResCaptcha
- type ResCaptcha struct {
- Code int `json:"code"`
- Message string `json:"message"`
- Data CaptchaData `json:"data"`
- }
- // CaptchaData CaptchaData
- type CaptchaData struct {
- Token string `json:"token"`
- URL string `json:"url"`
- }
- // ArgRegV3 ArgRegV3
- type ArgRegV3 struct {
- User string `form:"user" validate:"required"`
- Pwd string `form:"pwd" validate:"required"`
- Captcha string `form:"captcha"`
- Ctoken string `form:"ctoken"`
- }
- // ArgRegV2 ArgRegV2
- type ArgRegV2 struct {
- Captcha string `form:"captcha"`
- Ctoken string `form:"ctoken"`
- }
- // ArgReg ArgReg
- type ArgReg struct {
- Email string `form:"email" validate:"required"`
- Userpwd string `form:"pwd" validate:"required"`
- User string `form:"user" validate:"required"`
- }
- // ArgByTel ArgByTel
- type ArgByTel struct {
- Tel string `form:"tel" validate:"required"`
- Uname string `form:"user" validate:"required"`
- Userpwd string `form:"pwd" validate:"required"`
- CountryID string `form:"country_id" validate:"required"`
- Captcha string `form:"captcha" validate:"required"`
- }
- // SendSms SendSms
- type SendSms struct {
- Tel string `form:"tel" validate:"required"`
- CountryID string `form:"country_id" validate:"required"`
- Captcha string `form:"captcha" `
- Ctoken string `form:"ctoken" `
- ResetPwd bool `form:"reset_pwd" `
- }
- // TdoRegV3 TdoRegV3
- type TdoRegV3 struct {
- Arg ArgRegV3
- Cookie string
- IP string
- }
- // TdoRegV2 TdoRegV2
- type TdoRegV2 struct {
- Arg ArgRegV2
- Cookie string
- IP string
- }
- // TdoReg TdoReg
- type TdoReg struct {
- Arg ArgReg
- Cookie string
- IP string
- }
- // TdoByTel TdoByTel
- type TdoByTel struct {
- Arg ArgByTel
- Cookie string
- IP string
- }
- // TdoSendSms TdoSendSms
- type TdoSendSms struct {
- Arg SendSms
- Cookie string
- IP string
- }
- // Leak leak.
- func (a *AsoAccount) Leak() bool {
- return a.Isleak == _leak
- }
- // DefaultHash hash a plain text using default salt.
- func DefaultHash(plaintext string) string {
- return doHash(plaintext, _cloudSalt)
- }
- func doHash(plaintext, salt string) string {
- if plaintext == "" {
- return ""
- }
- hash := md5.New()
- hash.Write([]byte(plaintext))
- hash.Write([]byte(salt))
- md := hash.Sum(nil)
- return hex.EncodeToString(md)
- }
- // DefaultUserID get default user id.
- func DefaultUserID(mid int64) string {
- return "用户" + strconv.FormatInt(mid, 10)
- }
- // DefaultUname get default uname.
- func DefaultUname(mid int64) string {
- return "用户" + strconv.FormatInt(mid, 10)
- }
|