正在显示
4 个修改的文件
包含
130 行增加
和
16 行删除
| @@ -112,6 +112,73 @@ Success: | @@ -112,6 +112,73 @@ Success: | ||
| 112 | return | 112 | return |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | +func (s *AuthService) Login1(request *protocol.LoginRequest) (rsp *protocol.LoginResponse, err error) { | ||
| 116 | + var logintype ILoginAuth | ||
| 117 | + switch request.GrantType { | ||
| 118 | + case protocol.LoginTypePassPord: | ||
| 119 | + logintype = NewLoginByPassword(request.Phone, request.PassWord) | ||
| 120 | + case protocol.LoginTypeSmdcode: | ||
| 121 | + logintype = NewLoginBySms(request.Phone, request.Code) | ||
| 122 | + default: | ||
| 123 | + err = fmt.Errorf("grantType error:%s", request.GrantType) | ||
| 124 | + return | ||
| 125 | + } | ||
| 126 | + var useridentity *UserIdentity | ||
| 127 | + useridentity, err = logintype.LoginAuth() | ||
| 128 | + if err != nil { | ||
| 129 | + return nil, err | ||
| 130 | + } | ||
| 131 | + if len(useridentity.Auth) == 0 { | ||
| 132 | + useridentity.Auth = uid.NewV1().StringNoDash() | ||
| 133 | + } | ||
| 134 | + if len(useridentity.Imtoken) == 0 { | ||
| 135 | + //usercreate 最多重试俩次 | ||
| 136 | + for i := 0; i < 2; i++ { | ||
| 137 | + v := s_im.UserCreate{ | ||
| 138 | + Accid: fmt.Sprintf("%s", useridentity.Uid), | ||
| 139 | + Name: useridentity.Uname, | ||
| 140 | + Icon: useridentity.Icon, | ||
| 141 | + } | ||
| 142 | + tokenInfo, err := s_im.ParseUserCreate(v) | ||
| 143 | + if err != nil { | ||
| 144 | + log.Error("s_im.ParseUserCreate err:", err) | ||
| 145 | + } | ||
| 146 | + if err == nil { | ||
| 147 | + if tokenInfo.Code == 200 { | ||
| 148 | + useridentity.Imtoken = tokenInfo.Info.Token | ||
| 149 | + // 跳出 | ||
| 150 | + break | ||
| 151 | + } else { | ||
| 152 | + log.Error("s_im.ParseUserCreate response code:", tokenInfo.Code) | ||
| 153 | + } | ||
| 154 | + } | ||
| 155 | + } | ||
| 156 | + | ||
| 157 | + } else { | ||
| 158 | + //userupdateunifo | ||
| 159 | + for i := 0; i < 2; i++ { | ||
| 160 | + v := s_im.UserUpdateUinfo{ | ||
| 161 | + Accid: fmt.Sprintf("%s", useridentity.Accid), | ||
| 162 | + Name: useridentity.Uname, | ||
| 163 | + Icon: useridentity.Icon, | ||
| 164 | + } | ||
| 165 | + rsp, err := s_im.ParseUserUpdateUinfo(v) | ||
| 166 | + if err != nil { | ||
| 167 | + log.Error("s_im.ParseUserUpdateUinfo err:", err) | ||
| 168 | + } | ||
| 169 | + if err == nil { | ||
| 170 | + if rsp.Code == 200 { | ||
| 171 | + break | ||
| 172 | + } else { | ||
| 173 | + log.Error("s_im.ParseUserUpdateUinfo response code:", rsp.Code) | ||
| 174 | + } | ||
| 175 | + } | ||
| 176 | + } | ||
| 177 | + } | ||
| 178 | + | ||
| 179 | + return nil, err | ||
| 180 | +} | ||
| 181 | + | ||
| 115 | //更新设备信息 | 182 | //更新设备信息 |
| 116 | func (s *AuthService) UpdateDevice(request *protocol.UpdateDeviceRequest) (rsp *protocol.UpdateDeviceResponse, err error) { | 183 | func (s *AuthService) UpdateDevice(request *protocol.UpdateDeviceRequest) (rsp *protocol.UpdateDeviceResponse, err error) { |
| 117 | return nil, nil | 184 | return nil, nil |
| @@ -357,7 +424,7 @@ func imUserCreate(request *protocol.CheckImRequest, rsp *protocol.CheckImRespons | @@ -357,7 +424,7 @@ func imUserCreate(request *protocol.CheckImRequest, rsp *protocol.CheckImRespons | ||
| 357 | Icon: request.Icon, | 424 | Icon: request.Icon, |
| 358 | } | 425 | } |
| 359 | resp []byte | 426 | resp []byte |
| 360 | - out s_im.UserCreateResult | 427 | + out s_im.UserTokenResult |
| 361 | ) | 428 | ) |
| 362 | if resp, err = s_im.DefaultImClient.Call(param); err != nil { | 429 | if resp, err = s_im.DefaultImClient.Call(param); err != nil { |
| 363 | return | 430 | return |
| @@ -402,7 +469,7 @@ func imUserRefreshToken(request *protocol.CheckImRequest, rsp *protocol.CheckImR | @@ -402,7 +469,7 @@ func imUserRefreshToken(request *protocol.CheckImRequest, rsp *protocol.CheckImR | ||
| 402 | Accid: request.Uid, | 469 | Accid: request.Uid, |
| 403 | } | 470 | } |
| 404 | resp []byte | 471 | resp []byte |
| 405 | - out s_im.UserCreateResult | 472 | + out s_im.UserTokenResult |
| 406 | ) | 473 | ) |
| 407 | if resp, err = s_im.DefaultImClient.Call(param); err != nil { | 474 | if resp, err = s_im.DefaultImClient.Call(param); err != nil { |
| 408 | return | 475 | return |
| @@ -78,10 +78,11 @@ func (o LoginByPassword) LoginAuth() (*UserIdentity, error) { | @@ -78,10 +78,11 @@ func (o LoginByPassword) LoginAuth() (*UserIdentity, error) { | ||
| 78 | } | 78 | } |
| 79 | identity := &UserIdentity{ | 79 | identity := &UserIdentity{ |
| 80 | Uid: user.Id, | 80 | Uid: user.Id, |
| 81 | - Imtoken: user.ImToken, | 81 | + Imtoken: strings.TrimSpace(user.ImToken), |
| 82 | Accid: user.CsAccount, | 82 | Accid: user.CsAccount, |
| 83 | Icon: user.Icon, | 83 | Icon: user.Icon, |
| 84 | Uname: user.Uname, | 84 | Uname: user.Uname, |
| 85 | + Auth: strings.TrimSpace(user.Auth), | ||
| 85 | } | 86 | } |
| 86 | return identity, nil | 87 | return identity, nil |
| 87 | } | 88 | } |
| @@ -99,10 +100,11 @@ func (o LoginBySms) LoginAuth() (*UserIdentity, error) { | @@ -99,10 +100,11 @@ func (o LoginBySms) LoginAuth() (*UserIdentity, error) { | ||
| 99 | } | 100 | } |
| 100 | identity := &UserIdentity{ | 101 | identity := &UserIdentity{ |
| 101 | Uid: user.Id, | 102 | Uid: user.Id, |
| 102 | - Imtoken: user.ImToken, | 103 | + Imtoken: strings.TrimSpace(user.ImToken), |
| 103 | Accid: user.CsAccount, | 104 | Accid: user.CsAccount, |
| 104 | Icon: user.Icon, | 105 | Icon: user.Icon, |
| 105 | Uname: user.Uname, | 106 | Uname: user.Uname, |
| 107 | + Auth: strings.TrimSpace(user.Auth), | ||
| 106 | } | 108 | } |
| 107 | return identity, nil | 109 | return identity, nil |
| 108 | } | 110 | } |
| @@ -7,6 +7,7 @@ import ( | @@ -7,6 +7,7 @@ import ( | ||
| 7 | type ImParam interface { | 7 | type ImParam interface { |
| 8 | Format() map[string]string | 8 | Format() map[string]string |
| 9 | GetPath() string | 9 | GetPath() string |
| 10 | + Valid() error | ||
| 10 | } | 11 | } |
| 11 | 12 | ||
| 12 | type BaseResp struct { | 13 | type BaseResp struct { |
| @@ -19,7 +20,7 @@ type TokenInfo struct { | @@ -19,7 +20,7 @@ type TokenInfo struct { | ||
| 19 | Accid string `json:"accid"` | 20 | Accid string `json:"accid"` |
| 20 | Name string `json:"name"` | 21 | Name string `json:"name"` |
| 21 | } | 22 | } |
| 22 | -type UserCreateResult struct { | 23 | +type UserTokenResult struct { |
| 23 | BaseResp | 24 | BaseResp |
| 24 | Info TokenInfo `json:"info"` | 25 | Info TokenInfo `json:"info"` |
| 25 | } | 26 | } |
| @@ -67,6 +68,10 @@ func (p UserCreate) GetPath() string { | @@ -67,6 +68,10 @@ func (p UserCreate) GetPath() string { | ||
| 67 | return "/user/create.action" | 68 | return "/user/create.action" |
| 68 | } | 69 | } |
| 69 | 70 | ||
| 71 | +func (p UserCreate) Valid() error { | ||
| 72 | + return nil | ||
| 73 | +} | ||
| 74 | + | ||
| 70 | type UserRefreshToken struct { | 75 | type UserRefreshToken struct { |
| 71 | Accid string | 76 | Accid string |
| 72 | } | 77 | } |
| @@ -85,6 +90,10 @@ func (p UserRefreshToken) GetPath() string { | @@ -85,6 +90,10 @@ func (p UserRefreshToken) GetPath() string { | ||
| 85 | return "/user/refreshToken.action" | 90 | return "/user/refreshToken.action" |
| 86 | } | 91 | } |
| 87 | 92 | ||
| 93 | +func (p UserRefreshToken) Valid() error { | ||
| 94 | + return nil | ||
| 95 | +} | ||
| 96 | + | ||
| 88 | type UserUpdateUinfo struct { | 97 | type UserUpdateUinfo struct { |
| 89 | Accid string | 98 | Accid string |
| 90 | Name string //这边网易云要有昵称以手机号码为昵称 | 99 | Name string //这边网易云要有昵称以手机号码为昵称 |
| @@ -118,3 +127,7 @@ func (u UserUpdateUinfo) Format() map[string]string { | @@ -118,3 +127,7 @@ func (u UserUpdateUinfo) Format() map[string]string { | ||
| 118 | func (u UserUpdateUinfo) GetPath() string { | 127 | func (u UserUpdateUinfo) GetPath() string { |
| 119 | return "/user/refreshToken.action" | 128 | return "/user/refreshToken.action" |
| 120 | } | 129 | } |
| 130 | + | ||
| 131 | +func (u UserUpdateUinfo) Valid() error { | ||
| 132 | + return nil | ||
| 133 | +} |
| @@ -14,16 +14,15 @@ import ( | @@ -14,16 +14,15 @@ import ( | ||
| 14 | "time" | 14 | "time" |
| 15 | ) | 15 | ) |
| 16 | 16 | ||
| 17 | - | ||
| 18 | var DefaultImClient ImClient | 17 | var DefaultImClient ImClient |
| 19 | 18 | ||
| 20 | var ErrorFailCall = fmt.Errorf(" imclient call failed") | 19 | var ErrorFailCall = fmt.Errorf(" imclient call failed") |
| 21 | 20 | ||
| 22 | -func InitImClient(baseUrl ,appKey,appSecret string){ | 21 | +func InitImClient(baseUrl, appKey, appSecret string) { |
| 23 | DefaultImClient = ImClient{ | 22 | DefaultImClient = ImClient{ |
| 24 | - baseUrl:baseUrl, | ||
| 25 | - appKey:appKey, | ||
| 26 | - appSecret:appSecret, | 23 | + baseUrl: baseUrl, |
| 24 | + appKey: appKey, | ||
| 25 | + appSecret: appSecret, | ||
| 27 | } | 26 | } |
| 28 | } | 27 | } |
| 29 | 28 | ||
| @@ -55,7 +54,9 @@ func (i ImClient) buildHeader() http.Header { | @@ -55,7 +54,9 @@ func (i ImClient) buildHeader() http.Header { | ||
| 55 | } | 54 | } |
| 56 | 55 | ||
| 57 | func (i ImClient) httpDo(path string, posts map[string]string) ([]byte, error) { | 56 | func (i ImClient) httpDo(path string, posts map[string]string) ([]byte, error) { |
| 58 | - client := http.Client{} | 57 | + client := http.Client{ |
| 58 | + Timeout: 5 * time.Second, //请求超时时间5秒 | ||
| 59 | + } | ||
| 59 | reqURL := i.baseUrl + path | 60 | reqURL := i.baseUrl + path |
| 60 | params := url.Values{} | 61 | params := url.Values{} |
| 61 | for k, v := range posts { | 62 | for k, v := range posts { |
| @@ -84,11 +85,42 @@ func (i ImClient) Call(param ImParam) ([]byte, error) { | @@ -84,11 +85,42 @@ func (i ImClient) Call(param ImParam) ([]byte, error) { | ||
| 84 | return i.httpDo(param.GetPath(), param.Format()) | 85 | return i.httpDo(param.GetPath(), param.Format()) |
| 85 | } | 86 | } |
| 86 | 87 | ||
| 87 | -//ParseUserCreateResult 解析返回值 | ||
| 88 | -func ParseUserCreateResult(v []byte) (*UserCreateResult, error) { | ||
| 89 | - var result *UserCreateResult | ||
| 90 | - if err := json.Unmarshal(v, result); err != nil { | 88 | +//RequestUserCreate 解析返回值 |
| 89 | +func ParseUserCreate(v UserCreate) (*UserTokenResult, error) { | ||
| 90 | + var result UserTokenResult | ||
| 91 | + btData, err := DefaultImClient.Call(v) | ||
| 92 | + if err != nil { | ||
| 93 | + return nil, err | ||
| 94 | + } | ||
| 95 | + err = json.Unmarshal(btData, &result) | ||
| 96 | + if err != nil { | ||
| 97 | + return nil, err | ||
| 98 | + } | ||
| 99 | + return &result, nil | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | +func ParseUserRefreshToken(v UserRefreshToken) (*UserTokenResult, error) { | ||
| 103 | + var result UserTokenResult | ||
| 104 | + btData, err := DefaultImClient.Call(v) | ||
| 105 | + if err != nil { | ||
| 106 | + return nil, err | ||
| 107 | + } | ||
| 108 | + err = json.Unmarshal(btData, &result) | ||
| 109 | + if err != nil { | ||
| 110 | + return nil, err | ||
| 111 | + } | ||
| 112 | + return &result, nil | ||
| 113 | +} | ||
| 114 | + | ||
| 115 | +func ParseUserUpdateUinfo(v UserUpdateUinfo) (*BaseResp, error) { | ||
| 116 | + var result BaseResp | ||
| 117 | + btData, err := DefaultImClient.Call(v) | ||
| 118 | + if err != nil { | ||
| 119 | + return nil, err | ||
| 120 | + } | ||
| 121 | + err = json.Unmarshal(btData, &result) | ||
| 122 | + if err != nil { | ||
| 91 | return nil, err | 123 | return nil, err |
| 92 | } | 124 | } |
| 93 | - return result, nil | 125 | + return &result, nil |
| 94 | } | 126 | } |
-
请 注册 或 登录 后发表评论