Skip to content

Commit 96170d2

Browse files
committed
1. 增加获取验证码接口
2. 支持超过指定用户密码错误次数限制,将启用验码码验证 3. 注册时启用验证码登录
1 parent a4edf4f commit 96170d2

File tree

11 files changed

+363
-51
lines changed

11 files changed

+363
-51
lines changed

.github/workflows/cross-build.yml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -106,25 +106,20 @@ jobs:
106106
echo "当前路径$(pwd), localPath:${localPath}"
107107
echo "cp -r ${localPath}/docs ./jim-docs/"
108108
cp -r ${localPath}/docs ./jim-docs/
109-
110109
cd jim-docs
111110
112-
echo "列出文件"
113-
ls
114-
git status --porcelain
115-
116111
if git status --porcelain | grep .; then
117-
echo "添加更改文件"
112+
echo "存在需要变更的文件,即将进行推送"
113+
echo "1) 添加更改文件"
118114
git add .
119-
echo "添加标签"
120-
git tag ${{ github.event.inputs.version }}
121-
echo "提交更改"
115+
116+
echo "2) 提交更改"
122117
git commit -am "${{ github.event.inputs.version }}"
123-
echo "推送代码"
124-
git push "https://${{ secrets.ACCESS_TOKEN }}@github.com/jerbe/jim-docs.git" HEAD:main
125-
echo "推送标签(tag)"
126-
git push --force origin ${{ github.event.inputs.version }}
127118
119+
echo "3) 推送代码"
120+
git push "https://${{ secrets.ACCESS_TOKEN }}@github.com/jerbe/jim-docs.git" HEAD:main
121+
122+
echo "4) 触发工作流"
128123
curl -L \
129124
-X POST \
130125
-H "Accept: application/vnd.github+json" \

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ Here are the planned features:
6464
- [x] Receive chat messages
6565
- [x] Receive notification messages
6666
+ [x] User Registration
67-
- [ ] Verification code validation
67+
- [x] Verification code validation
6868
- [ ] Strong password validation
6969
- [ ] Email binding
7070
- [ ] Limited registration time switch
7171
+ [x] User Login
72-
- [ ] Verification code validation
72+
- [x] Verification code validation
7373
- [x] Cannot log in if disabled
7474
- [x] Cannot log in if deleted
7575
- [ ] User Logout

README_zh.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ JIM 是一个轻量的聊天系统,
5656
- [x] 接收聊天消息
5757
- [x] 接收通知消息
5858
+ [x] 用户注册
59-
- [ ] 验证码验证
59+
- [x] 验证码验证
6060
- [ ] 强密码验证
6161
- [ ] 邮箱绑定
6262
- [ ] 限定注册时限开关
6363
+ [x] 用户登录
64-
- [ ] 验证码验证
64+
- [x] 验证码验证
6565
- [x] 被禁用无法登录
6666
- [x] 被删除无法登录
6767
- [ ] 用户登出

go.mod

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ require (
77
github.com/go-sql-driver/mysql v1.6.0
88
github.com/goccy/go-json v0.10.2
99
github.com/golang-jwt/jwt/v5 v5.0.0
10+
github.com/google/uuid v1.3.1
1011
github.com/gorilla/websocket v1.5.0
11-
github.com/jerbe/jcache v1.0.0
12+
github.com/jerbe/jcache v1.0.2
1213
github.com/jmoiron/sqlx v1.3.5
14+
github.com/mojocn/base64Captcha v1.3.5
1315
github.com/natefinch/lumberjack/v3 v3.0.0-alpha
1416
github.com/redis/go-redis/v9 v9.1.0
1517
github.com/rs/zerolog v1.30.0
@@ -21,15 +23,16 @@ require (
2123
github.com/bytedance/sonic v1.9.1 // indirect
2224
github.com/cespare/xxhash/v2 v2.2.0 // indirect
2325
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
26+
github.com/dchest/captcha v1.0.0 // indirect
2427
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
2528
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
2629
github.com/gin-contrib/sse v0.1.0 // indirect
2730
github.com/go-playground/locales v0.14.1 // indirect
2831
github.com/go-playground/universal-translator v0.18.1 // indirect
2932
github.com/go-playground/validator/v10 v10.15.3 // indirect
33+
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
3034
github.com/golang/snappy v0.0.1 // indirect
3135
github.com/google/go-cmp v0.5.9 // indirect
32-
github.com/google/uuid v1.3.1 // indirect
3336
github.com/json-iterator/go v1.1.12 // indirect
3437
github.com/klauspost/compress v1.13.6 // indirect
3538
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
@@ -51,6 +54,7 @@ require (
5154
github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect
5255
golang.org/x/arch v0.3.0 // indirect
5356
golang.org/x/crypto v0.12.0 // indirect
57+
golang.org/x/image v0.0.0-20190501045829-6d32002ffd75 // indirect
5458
golang.org/x/net v0.14.0 // indirect
5559
golang.org/x/sync v0.3.0 // indirect
5660
golang.org/x/sys v0.11.0 // indirect

go.sum

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
1313
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1414
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1515
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
16+
github.com/dchest/captcha v1.0.0 h1:vw+bm/qMFvTgcjQlYVTuQBJkarm5R0YSsDKhm1HZI2o=
17+
github.com/dchest/captcha v1.0.0/go.mod h1:7zoElIawLp7GUMLcj54K9kbw+jEyvz2K0FDdRRYhvWo=
1618
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
1719
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
1820
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
@@ -35,6 +37,8 @@ github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MG
3537
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
3638
github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE=
3739
github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
40+
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
41+
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
3842
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
3943
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
4044
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
@@ -49,6 +53,8 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm
4953
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
5054
github.com/jerbe/jcache v1.0.0 h1:xi2ErWRAZQTB5hHTcB0nF8kdvx4ZQ/4SJrhmDsIEStM=
5155
github.com/jerbe/jcache v1.0.0/go.mod h1:fLGWVllQSCat+5qL6BtUBb1ri/cXk4alQOPA2RuJqEg=
56+
github.com/jerbe/jcache v1.0.2 h1:Y/0KyQkEDE4cSFfbv1IDl1LLiu3uOQmo0GMOx+ox7Rc=
57+
github.com/jerbe/jcache v1.0.2/go.mod h1:KRIL2aTSe68fs/XxIJcMCbAKxFfNVpbiDkJ11O1kGQ0=
5258
github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
5359
github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
5460
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
@@ -81,6 +87,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
8187
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
8288
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
8389
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
90+
github.com/mojocn/base64Captcha v1.3.5 h1:Qeilr7Ta6eDtG4S+tQuZ5+hO+QHbiGAJdi4PfoagaA0=
91+
github.com/mojocn/base64Captcha v1.3.5/go.mod h1:/tTTXn4WTpX9CfrmipqRytCpJ27Uw3G6I7NcP2WwcmY=
8492
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
8593
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
8694
github.com/natefinch/lumberjack/v3 v3.0.0-alpha h1:HZ2AJF20D1lo9S0F/rpgkFbPGam5dgR3X0KUtZA5mlY=
@@ -136,6 +144,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
136144
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
137145
golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
138146
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
147+
golang.org/x/image v0.0.0-20190501045829-6d32002ffd75 h1:TbGuee8sSq15Iguxu4deQ7+Bqq/d2rsQejGcEtADAMQ=
148+
golang.org/x/image v0.0.0-20190501045829-6d32002ffd75/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
139149
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
140150
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
141151
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=

0 commit comments

Comments
 (0)