正在显示
5 个修改的文件
包含
135 行增加
和
51 行删除
@@ -3,8 +3,8 @@ package protocol | @@ -3,8 +3,8 @@ package protocol | ||
3 | import "gitlab.fjmaimaimai.com/mmm-go/ability/models" | 3 | import "gitlab.fjmaimaimai.com/mmm-go/ability/models" |
4 | 4 | ||
5 | const ( | 5 | const ( |
6 | - LoginPassPord ="signInPassword" | ||
7 | - LoginSmdcode ="signInCaptcha" | 6 | + LoginTypePassPord ="signInPassword" |
7 | + LoginTypeSmdcode ="signInCaptcha" | ||
8 | ) | 8 | ) |
9 | 9 | ||
10 | var Nums =[]byte("0123456789") | 10 | var Nums =[]byte("0123456789") |
@@ -39,6 +39,7 @@ type SmsCodeRequest struct { | @@ -39,6 +39,7 @@ type SmsCodeRequest struct { | ||
39 | 39 | ||
40 | } | 40 | } |
41 | type SmsCodeResponse struct { | 41 | type SmsCodeResponse struct { |
42 | + Code string `json:"-"` | ||
42 | } | 43 | } |
43 | 44 | ||
44 | /*UpdateDevice*/ | 45 | /*UpdateDevice*/ |
@@ -56,7 +56,7 @@ func (s *AuthService)Login(request *protocol.LoginRequest)(rsp *protocol.LoginRe | @@ -56,7 +56,7 @@ func (s *AuthService)Login(request *protocol.LoginRequest)(rsp *protocol.LoginRe | ||
56 | return | 56 | return |
57 | } | 57 | } |
58 | switch request.GrantType { | 58 | switch request.GrantType { |
59 | - case protocol.LoginPassPord: | 59 | + case protocol.LoginTypePassPord: |
60 | if strings.Compare(user.Password,request.PassWord)==0{ | 60 | if strings.Compare(user.Password,request.PassWord)==0{ |
61 | goto Success | 61 | goto Success |
62 | }else{ | 62 | }else{ |
@@ -64,8 +64,8 @@ func (s *AuthService)Login(request *protocol.LoginRequest)(rsp *protocol.LoginRe | @@ -64,8 +64,8 @@ func (s *AuthService)Login(request *protocol.LoginRequest)(rsp *protocol.LoginRe | ||
64 | return | 64 | return |
65 | } | 65 | } |
66 | break | 66 | break |
67 | - case protocol.LoginSmdcode: | ||
68 | - if result,err=CheckSmsCode(request);result && err==nil{ | 67 | + case protocol.LoginTypeSmdcode: |
68 | + if result,err=CheckSmsCode(request.Phone,request.Code,protocol.SmsLoginCode);result && err==nil{ | ||
69 | goto Success | 69 | goto Success |
70 | }else{ | 70 | }else{ |
71 | return | 71 | return |
@@ -179,7 +179,7 @@ func (s *AuthService)CheckUuid(request *protocol.CheckUuidRequest)(rsp *protocol | @@ -179,7 +179,7 @@ func (s *AuthService)CheckUuid(request *protocol.CheckUuidRequest)(rsp *protocol | ||
179 | rsp =&protocol.CheckUuidResponse{} | 179 | rsp =&protocol.CheckUuidResponse{} |
180 | return | 180 | return |
181 | } | 181 | } |
182 | -//短信验证码 | 182 | +//短信验证码 T |
183 | func (s *AuthService)SmsCode(request *protocol.SmsCodeRequest)(rsp *protocol.SmsCodeResponse,err error){ | 183 | func (s *AuthService)SmsCode(request *protocol.SmsCodeRequest)(rsp *protocol.SmsCodeResponse,err error){ |
184 | var( | 184 | var( |
185 | value,key,msgContent string | 185 | value,key,msgContent string |
@@ -240,17 +240,20 @@ func (s *AuthService)SmsCode(request *protocol.SmsCodeRequest)(rsp *protocol.Sms | @@ -240,17 +240,20 @@ func (s *AuthService)SmsCode(request *protocol.SmsCodeRequest)(rsp *protocol.Sms | ||
240 | },) | 240 | },) |
241 | request.Content = buf.String() | 241 | request.Content = buf.String() |
242 | err = sms.Send(request) | 242 | err = sms.Send(request) |
243 | + rsp = &protocol.SmsCodeResponse{ | ||
244 | + Code:smsInfo.Code, | ||
245 | + } | ||
243 | } | 246 | } |
244 | return | 247 | return |
245 | } | 248 | } |
246 | -//验证短信验证码 | ||
247 | -func CheckSmsCode(request *protocol.LoginRequest)(result bool,err error){ | 249 | +//验证短信验证码 T |
250 | +func CheckSmsCode(phone ,code ,sendType string)(result bool,err error){ | ||
248 | var( | 251 | var( |
249 | value string | 252 | value string |
250 | smsInfo *protocol.SmsInfo | 253 | smsInfo *protocol.SmsInfo |
251 | ) | 254 | ) |
252 | result =false | 255 | result =false |
253 | - if value,err =redis.Hget(protocol.SmsLoginCode,request.Phone);err!=nil{ | 256 | + if value,err =redis.Hget(sendType,phone);err!=nil{//protocol.SmsLoginCode |
254 | err = common.NewErrorWithMsg(1009,"smscode expire") | 257 | err = common.NewErrorWithMsg(1009,"smscode expire") |
255 | return | 258 | return |
256 | } | 259 | } |
@@ -261,11 +264,11 @@ func CheckSmsCode(request *protocol.LoginRequest)(result bool,err error){ | @@ -261,11 +264,11 @@ func CheckSmsCode(request *protocol.LoginRequest)(result bool,err error){ | ||
261 | err = common.NewErrorWithMsg(1011,"smscode over error times") | 264 | err = common.NewErrorWithMsg(1011,"smscode over error times") |
262 | return | 265 | return |
263 | } | 266 | } |
264 | - if smsInfo.LastTime+60*5<time.Now().Unix(){ | ||
265 | - err = common.NewErrorWithMsg(1009,"smscode expire") | 267 | + if (smsInfo.LastTime+60*5)<time.Now().Unix(){ |
268 | + err = common.NewErrorWithMsg(1009,fmt.Sprintf("smscode expire %v < %v",(smsInfo.LastTime+60*5),time.Now().Unix())) | ||
266 | goto Fail | 269 | goto Fail |
267 | } | 270 | } |
268 | - if smsInfo.Code == request.Code{ | 271 | + if smsInfo.Code == code{ |
269 | result = true | 272 | result = true |
270 | return | 273 | return |
271 | }else{ | 274 | }else{ |
@@ -275,7 +278,7 @@ func CheckSmsCode(request *protocol.LoginRequest)(result bool,err error){ | @@ -275,7 +278,7 @@ func CheckSmsCode(request *protocol.LoginRequest)(result bool,err error){ | ||
275 | Fail: | 278 | Fail: |
276 | { | 279 | { |
277 | smsInfo.ErrorCount +=1 | 280 | smsInfo.ErrorCount +=1 |
278 | - if err=redis.Hset(protocol.SmsLoginCode,request.Phone,common.AssertJson(smsInfo),-1);err!=nil{ | 281 | + if err=redis.Hset(sendType,phone,common.AssertJson(smsInfo),-1);err!=nil{ |
279 | return | 282 | return |
280 | } | 283 | } |
281 | } | 284 | } |
services/auth/auth_test.go
0 → 100644
1 | +package auth | ||
2 | + | ||
3 | +import ( | ||
4 | + "gitlab.fjmaimaimai.com/mmm-go/ability/protocol" | ||
5 | + "gitlab.fjmaimaimai.com/mmm-go/ability/tests" | ||
6 | + "testing" | ||
7 | +) | ||
8 | + | ||
9 | +func init(){ | ||
10 | + tests.Init() | ||
11 | +} | ||
12 | + | ||
13 | +func Test_SmsCode(t *testing.T){ | ||
14 | + var ( | ||
15 | + resp *protocol.SmsCodeResponse | ||
16 | + err error | ||
17 | + out bool | ||
18 | + ) | ||
19 | + input :=[]*protocol.SmsCodeRequest{ | ||
20 | + {Phone:"18860183051",SendType:"sms_login_code"}, | ||
21 | + {Phone:"18860183052",SendType:"sms_login_code"}, | ||
22 | + {Phone:"18860183052",SendType:"sms_login_code"}, | ||
23 | + {Phone:"18860183053",SendType:"sms_change_mobile"}, | ||
24 | + {Phone:"18860183053",SendType:"sms_change_mobile"}, | ||
25 | + {Phone:"18860183054",SendType:"sms_change_mobile"}, | ||
26 | + } | ||
27 | + var s IAuthService = &AuthService{} | ||
28 | + for i:=range input{ | ||
29 | + if resp,err =s.SmsCode(input[i]);err!=nil{ | ||
30 | + t.Fatal("send sms code error. input:",input[i],err) | ||
31 | + } | ||
32 | + if out,err =CheckSmsCode(input[i].Phone,resp.Code,input[i].SendType);err!=nil || !out{ | ||
33 | + t.Fatal("check sms code error.",input[i].Phone,input[i].SendType,resp.Code,err) | ||
34 | + } | ||
35 | + } | ||
36 | +} |
tests/comm.go
0 → 100644
1 | +package tests | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/astaxie/beego" | ||
5 | + _ "github.com/go-sql-driver/mysql" | ||
6 | + "gitlab.fjmaimaimai.com/mmm-go/ability/protocol" | ||
7 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/config" | ||
8 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" | ||
9 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/orm" | ||
10 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/redis" | ||
11 | + "os" | ||
12 | + "path/filepath" | ||
13 | + "runtime" | ||
14 | + "sync" | ||
15 | +) | ||
16 | + | ||
17 | +var one sync.Once | ||
18 | + | ||
19 | +func Init(){ | ||
20 | + one.Do(func(){ | ||
21 | + _, file, _, _ := runtime.Caller(0) | ||
22 | + apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".." + string(filepath.Separator)))) | ||
23 | + beego.TestBeegoInit(apppath) | ||
24 | + | ||
25 | + path,_:=os.Getwd() | ||
26 | + filename :="app.conf" | ||
27 | + beego.LoadAppConfig("ini", filepath.Join(path, "conf", filename)) | ||
28 | + log.InitLog(config.Logger{ | ||
29 | + Filename:"app.log", | ||
30 | + Level:"3", //7 | ||
31 | + }) | ||
32 | + err:= redis.InitWithDb(100,beego.AppConfig.String("redis_add_port"),beego.AppConfig.String("redis_auth"),"0") | ||
33 | + if err!=nil{ | ||
34 | + log.Fatal(err) | ||
35 | + panic(err) | ||
36 | + } | ||
37 | + orm.NewBeeormEngine(config.Mysql{ | ||
38 | + DataSource:beego.AppConfig.String("data_source"), | ||
39 | + MaxIdle: 100, | ||
40 | + MaxOpen:100, | ||
41 | + }) | ||
42 | + protocol.InitMessageCode() | ||
43 | + }) | ||
44 | +} |
1 | -package test | ||
2 | - | ||
3 | -import ( | ||
4 | - "net/http" | ||
5 | - "net/http/httptest" | ||
6 | - "testing" | ||
7 | - "runtime" | ||
8 | - "path/filepath" | ||
9 | - _ "gitlab.fjmaimaimai.com/mmm-go/ability/routers" | ||
10 | - | ||
11 | - "github.com/astaxie/beego" | ||
12 | - . "github.com/smartystreets/goconvey/convey" | ||
13 | -) | ||
14 | - | ||
15 | -func init() { | ||
16 | - _, file, _, _ := runtime.Caller(0) | ||
17 | - apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".." + string(filepath.Separator)))) | ||
18 | - beego.TestBeegoInit(apppath) | ||
19 | -} | ||
20 | - | ||
21 | - | ||
22 | -// TestBeego is a sample to run an endpoint test | ||
23 | -func TestBeego(t *testing.T) { | ||
24 | - r, _ := http.NewRequest("GET", "/", nil) | ||
25 | - w := httptest.NewRecorder() | ||
26 | - beego.BeeApp.Handlers.ServeHTTP(w, r) | ||
27 | - | ||
28 | - beego.Trace("testing", "TestBeego", "Code[%d]\n%s", w.Code, w.Body.String()) | ||
29 | - | ||
30 | - Convey("Subject: Test Station Endpoint\n", t, func() { | ||
31 | - Convey("Status Code Should Be 200", func() { | ||
32 | - So(w.Code, ShouldEqual, 200) | ||
33 | - }) | ||
34 | - Convey("The Result Should Not Be Empty", func() { | ||
35 | - So(w.Body.Len(), ShouldBeGreaterThan, 0) | ||
36 | - }) | ||
37 | - }) | ||
38 | -} | 1 | +package tests |
2 | + | ||
3 | +//import ( | ||
4 | +// "net/http" | ||
5 | +// "net/http/httptest" | ||
6 | +// "testing" | ||
7 | +// "runtime" | ||
8 | +// "path/filepath" | ||
9 | +// _ "gitlab.fjmaimaimai.com/mmm-go/ability/routers" | ||
10 | +// | ||
11 | +// "github.com/astaxie/beego" | ||
12 | +// . "github.com/smartystreets/goconvey/convey" | ||
13 | +//) | ||
14 | +// | ||
15 | +//func init() { | ||
16 | +// _, file, _, _ := runtime.Caller(0) | ||
17 | +// apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".." + string(filepath.Separator)))) | ||
18 | +// beego.TestBeegoInit(apppath) | ||
19 | +//} | ||
20 | +// | ||
21 | +// | ||
22 | +//// TestBeego is a sample to run an endpoint test | ||
23 | +//func TestBeego(t *testing.T) { | ||
24 | +// r, _ := http.NewRequest("GET", "/", nil) | ||
25 | +// w := httptest.NewRecorder() | ||
26 | +// beego.BeeApp.Handlers.ServeHTTP(w, r) | ||
27 | +// | ||
28 | +// beego.Trace("testing", "TestBeego", "Code[%d]\n%s", w.Code, w.Body.String()) | ||
29 | +// | ||
30 | +// Convey("Subject: Test Station Endpoint\n", t, func() { | ||
31 | +// Convey("Status Code Should Be 200", func() { | ||
32 | +// So(w.Code, ShouldEqual, 200) | ||
33 | +// }) | ||
34 | +// Convey("The Result Should Not Be Empty", func() { | ||
35 | +// So(w.Body.Len(), ShouldBeGreaterThan, 0) | ||
36 | +// }) | ||
37 | +// }) | ||
38 | +//} | ||
39 | 39 |
-
请 注册 或 登录 后发表评论