Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
李宇怀
Backend
Commits
1a31c3a4
Commit
1a31c3a4
authored
Sep 10, 2023
by
李宇怀
Browse files
联调完成注册
parent
6e6f4ce8
Changes
11
Hide whitespace changes
Inline
Side-by-side
api/dto/user.go
View file @
1a31c3a4
...
@@ -8,7 +8,7 @@ type UserRegisterReq struct { //Body Params
...
@@ -8,7 +8,7 @@ type UserRegisterReq struct { //Body Params
}
}
//获取登录验证码
//获取登录验证码
type
GetVeri
Resp
struct
{
//Responses
type
Captcha
Resp
struct
{
//Responses
CAPTCHAID
string
`json:"captcha_id"`
// 验证码 ID
CAPTCHAID
string
`json:"captcha_id"`
// 验证码 ID
CAPTCHAURL
string
`json:"captcha_url"`
// 验证码图片地址
CAPTCHAURL
string
`json:"captcha_url"`
// 验证码图片地址
}
}
...
...
api/init.go
View file @
1a31c3a4
...
@@ -2,11 +2,13 @@ package api
...
@@ -2,11 +2,13 @@ package api
import
(
import
(
"fmt"
"fmt"
"github.com/gin-gonic/gin"
"github.com/spf13/viper"
"go-svc-tpl/api/route"
"go-svc-tpl/api/route"
"net/http"
"net/http"
"time"
"time"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
"github.com/spf13/viper"
)
)
//go:generate go run -mod=mod github.com/swaggo/swag/cmd/swag fmt -d ../ -g api/init.go
//go:generate go run -mod=mod github.com/swaggo/swag/cmd/swag fmt -d ../ -g api/init.go
...
@@ -30,7 +32,17 @@ func StartServer() error {
...
@@ -30,7 +32,17 @@ func StartServer() error {
}
}
e
:=
gin
.
Default
()
e
:=
gin
.
Default
()
route
.
SetupRouter
(
e
.
Group
(
"/api"
))
e
.
Use
(
cors
.
New
(
cors
.
Config
{
AllowOrigins
:
[]
string
{
"http://localhost:8000"
,
"http://localhost:8080"
,
"http://localhost:63342"
},
AllowMethods
:
[]
string
{
"GET"
,
"POST"
,
"PUT"
,
"PATCH"
,
"DELETE"
,
"OPTIONS"
},
AllowHeaders
:
[]
string
{
"Origin"
,
"Host"
,
"User-Agent"
,
"content-type"
,
"authorization"
,
"image/png"
,
"image/jpeg"
,
"AccessToken"
,
"X-CSRF-Token"
,
"Authorization"
,
"Token"
},
ExposeHeaders
:
[]
string
{
"Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type"
},
AllowCredentials
:
true
,
MaxAge
:
12
*
time
.
Hour
,
}))
route
.
SetupRouter
(
&
e
.
RouterGroup
)
s
:=
&
http
.
Server
{
s
:=
&
http
.
Server
{
Addr
:
fmt
.
Sprintf
(
":%d"
,
cfg
.
Port
),
Addr
:
fmt
.
Sprintf
(
":%d"
,
cfg
.
Port
),
...
...
api/route/route.go
View file @
1a31c3a4
...
@@ -17,7 +17,7 @@ func Ping(c *gin.Context) {
...
@@ -17,7 +17,7 @@ func Ping(c *gin.Context) {
func
SetupRouter
(
r
*
gin
.
RouterGroup
)
{
func
SetupRouter
(
r
*
gin
.
RouterGroup
)
{
r
.
GET
(
"/ping"
,
Ping
)
r
.
GET
(
"/ping"
,
Ping
)
setupUserController
(
r
)
setupUserController
(
r
.
Group
(
"/api"
)
)
setupLinkController
(
r
)
setupLinkController
(
r
.
Group
(
"/api"
)
)
setupServerController
(
r
)
setupServerController
(
r
)
}
}
api/route/server.go
View file @
1a31c3a4
...
@@ -13,9 +13,8 @@ func setupServerController(r *gin.RouterGroup) {
...
@@ -13,9 +13,8 @@ func setupServerController(r *gin.RouterGroup) {
ctl
:
controller
.
NewServerController
(),
//Factory method of ILinkController.
ctl
:
controller
.
NewServerController
(),
//Factory method of ILinkController.
// Implemented in controller package.
// Implemented in controller package.
}
}
p
:=
r
.
Group
(
"/server"
)
r
.
GET
(
":short"
,
lcw
.
Link
)
p
.
GET
(
"/getlink"
,
lcw
.
Link
)
r
.
GET
(
"/api/captcha/:target"
,
lcw
.
Veri
)
p
.
GET
(
"/getveri"
,
lcw
.
Veri
)
}
}
type
ServerCtlWrapper
struct
{
//Wrapper类隔离接口具体逻辑
type
ServerCtlWrapper
struct
{
//Wrapper类隔离接口具体逻辑
...
...
api/route/user.go
View file @
1a31c3a4
...
@@ -15,7 +15,7 @@ func setupUserController(r *gin.RouterGroup) {
...
@@ -15,7 +15,7 @@ func setupUserController(r *gin.RouterGroup) {
}
}
p
:=
r
.
Group
(
"/user"
)
p
:=
r
.
Group
(
"/user"
)
p
.
POST
(
"/register"
,
lcw
.
Register
)
p
.
POST
(
"/register"
,
lcw
.
Register
)
p
.
GET
(
"/
getveri"
,
lcw
.
GetVeri
)
p
.
GET
(
"/
captcha"
,
lcw
.
Captcha
)
p
.
POST
(
"/login"
,
lcw
.
Login
)
p
.
POST
(
"/login"
,
lcw
.
Login
)
p
.
GET
(
"/getinfo"
,
controller
.
ParseTokenMidware
(),
lcw
.
GetInfo
)
p
.
GET
(
"/getinfo"
,
controller
.
ParseTokenMidware
(),
lcw
.
GetInfo
)
p
.
POST
(
"/modifyinfo"
,
controller
.
ParseTokenMidware
(),
lcw
.
ModifyInfo
)
p
.
POST
(
"/modifyinfo"
,
controller
.
ParseTokenMidware
(),
lcw
.
ModifyInfo
)
...
@@ -43,13 +43,13 @@ func (w *UserCtlWrapper) Register(c *gin.Context) {
...
@@ -43,13 +43,13 @@ func (w *UserCtlWrapper) Register(c *gin.Context) {
}
}
// get verification
// get verification
func
(
w
*
UserCtlWrapper
)
GetVeri
(
c
*
gin
.
Context
)
{
func
(
w
*
UserCtlWrapper
)
Captcha
(
c
*
gin
.
Context
)
{
//var req dto.UserRegisterReq
//var req dto.UserRegisterReq
//if err := dto.BindReq(c, &req); err != nil {
//if err := dto.BindReq(c, &req); err != nil {
// dto.ResponseFail(c, err)
// dto.ResponseFail(c, err)
// return
// return
//}
//}
resp
,
err
:=
w
.
ctl
.
GetVeri
(
c
)
resp
,
err
:=
w
.
ctl
.
Captcha
(
c
)
if
err
!=
nil
{
if
err
!=
nil
{
dto
.
ResponseFail
(
c
,
err
)
dto
.
ResponseFail
(
c
,
err
)
return
return
...
...
config_sample.yaml
deleted
100644 → 0
View file @
6e6f4ce8
App
:
RunLevel
:
debug
# RunLevel: release
WebServer
:
Port
:
8080
WriteTimeout
:
10
#ms
ReadTimeout
:
10
#ms
Database
:
DSN
:
root:password@tcp(localhost:3306)/short_link?charset=utf8mb4&parseTime=True&loc=Local
\ No newline at end of file
go.mod
View file @
1a31c3a4
...
@@ -5,7 +5,7 @@ go 1.20
...
@@ -5,7 +5,7 @@ go 1.20
require (
require (
github.com/dchest/captcha
v1.0.0
github.com/dchest/captcha
v1.0.0
github.com/dgrijalva/jwt-go
v3.2.0+incompatible
github.com/dgrijalva/jwt-go
v3.2.0+incompatible
github.com/gin-contrib/
sessions
v0.0.5
github.com/gin-contrib/
cors
v1.4.0
github.com/gin-gonic/gin
v1.9.1
github.com/gin-gonic/gin
v1.9.1
github.com/go-sql-driver/mysql
v1.7.0
github.com/go-sql-driver/mysql
v1.7.0
github.com/palantir/stacktrace
v0.0.0-20161112013806-78658fd2d177
github.com/palantir/stacktrace
v0.0.0-20161112013806-78658fd2d177
...
@@ -30,9 +30,6 @@ require (
...
@@ -30,9 +30,6 @@ require (
github.com/go-playground/universal-translator
v0.18.1 // indirect
github.com/go-playground/universal-translator
v0.18.1 // indirect
github.com/go-playground/validator/v10
v10.14.0 // indirect
github.com/go-playground/validator/v10
v10.14.0 // indirect
github.com/goccy/go-json
v0.10.2 // indirect
github.com/goccy/go-json
v0.10.2 // indirect
github.com/gorilla/context
v1.1.1 // indirect
github.com/gorilla/securecookie
v1.1.1 // indirect
github.com/gorilla/sessions
v1.2.1 // indirect
github.com/hashicorp/hcl
v1.0.0 // indirect
github.com/hashicorp/hcl
v1.0.0 // indirect
github.com/inconshreveable/mousetrap
v1.1.0 // indirect
github.com/inconshreveable/mousetrap
v1.1.0 // indirect
github.com/jinzhu/inflection
v1.0.0 // indirect
github.com/jinzhu/inflection
v1.0.0 // indirect
...
...
go.sum
View file @
1a31c3a4
...
@@ -53,6 +53,7 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX
...
@@ -53,6 +53,7 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX
github.com/cncf/udpa/go
v0.0.0-20200629203442-efcf912fb354/go.mod h1:
WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go
v0.0.0-20200629203442-efcf912fb354/go.mod h1:
WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go
v0.0.0-20201120205902-5459f2c99403/go.mod h1:
WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go
v0.0.0-20201120205902-5459f2c99403/go.mod h1:
WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cpuguy83/go-md2man/v2
v2.0.2/go.mod h1:
tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cpuguy83/go-md2man/v2
v2.0.2/go.mod h1:
tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty
v1.1.9/go.mod h1:
oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew
v1.1.0/go.mod h1:
J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew
v1.1.0/go.mod h1:
J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew
v1.1.1 h1:
vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew
v1.1.1 h1:
vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew
v1.1.1/go.mod h1:
J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew
v1.1.1/go.mod h1:
J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
...
@@ -71,24 +72,30 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4
...
@@ -71,24 +72,30 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4
github.com/fsnotify/fsnotify
v1.6.0/go.mod h1:
sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/fsnotify/fsnotify
v1.6.0/go.mod h1:
sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/gabriel-vasile/mimetype
v1.4.2 h1:
w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
github.com/gabriel-vasile/mimetype
v1.4.2 h1:
w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
github.com/gabriel-vasile/mimetype
v1.4.2/go.mod h1:
zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
github.com/gabriel-vasile/mimetype
v1.4.2/go.mod h1:
zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
github.com/gin-contrib/
sessions
v0.0.5 h1:
CATtfHmLMQrMNpJRgzjWXD7worTh7g7ritsQfmF+0jE
=
github.com/gin-contrib/
cors
v1.4.0 h1:
oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g
=
github.com/gin-contrib/
sessions
v0.0.5/go.mod h1:
vYAuaUPqie3WUSsft6HUlCjlwwoJQs97miaG2+7neKY
=
github.com/gin-contrib/
cors
v1.4.0/go.mod h1:
bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs
=
github.com/gin-contrib/sse
v0.1.0 h1:
Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse
v0.1.0 h1:
Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
github.com/gin-contrib/sse
v0.1.0/go.mod h1:
RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-contrib/sse
v0.1.0/go.mod h1:
RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin
v1.8.1/go.mod h1:
ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
github.com/gin-gonic/gin
v1.9.1 h1:
4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
github.com/gin-gonic/gin
v1.9.1 h1:
4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
github.com/gin-gonic/gin
v1.9.1/go.mod h1:
hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
github.com/gin-gonic/gin
v1.9.1/go.mod h1:
hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
github.com/go-gl/glfw
v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:
vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw
v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:
vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw
v0.0.0-20191125211704-12ad95a8df72/go.mod h1:
tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw
v0.0.0-20191125211704-12ad95a8df72/go.mod h1:
tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw
v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:
tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw
v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:
tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-playground/assert/v2
v2.0.1/go.mod h1:
VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/assert/v2
v2.2.0 h1:
JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
github.com/go-playground/assert/v2
v2.2.0 h1:
JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
github.com/go-playground/locales
v0.14.0/go.mod h1:
sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/locales
v0.14.1 h1:
EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
github.com/go-playground/locales
v0.14.1 h1:
EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
github.com/go-playground/locales
v0.14.1/go.mod h1:
hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/locales
v0.14.1/go.mod h1:
hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator
v0.18.0/go.mod h1:
UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/universal-translator
v0.18.1 h1:
Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator
v0.18.1 h1:
Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator
v0.18.1/go.mod h1:
xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/universal-translator
v0.18.1/go.mod h1:
xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10
v10.10.0/go.mod h1:
74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
github.com/go-playground/validator/v10
v10.14.0 h1:
vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js=
github.com/go-playground/validator/v10
v10.14.0 h1:
vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js=
github.com/go-playground/validator/v10
v10.14.0/go.mod h1:
9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
github.com/go-playground/validator/v10
v10.14.0/go.mod h1:
9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
github.com/go-sql-driver/mysql
v1.7.0 h1:
ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
github.com/go-sql-driver/mysql
v1.7.0 h1:
ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
github.com/go-sql-driver/mysql
v1.7.0/go.mod h1:
OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/go-sql-driver/mysql
v1.7.0/go.mod h1:
OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/goccy/go-json
v0.9.7/go.mod h1:
6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/goccy/go-json
v0.10.2 h1:
CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
github.com/goccy/go-json
v0.10.2 h1:
CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
github.com/goccy/go-json
v0.10.2/go.mod h1:
6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/goccy/go-json
v0.10.2/go.mod h1:
6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/golang/glog
v0.0.0-20160126235308-23def4e6c14b/go.mod h1:
SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/glog
v0.0.0-20160126235308-23def4e6c14b/go.mod h1:
SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
...
@@ -149,12 +156,6 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
...
@@ -149,12 +156,6 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
github.com/googleapis/gax-go/v2
v2.0.4/go.mod h1:
0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2
v2.0.4/go.mod h1:
0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2
v2.0.5/go.mod h1:
DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/gax-go/v2
v2.0.5/go.mod h1:
DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/google-cloud-go-testing
v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:
dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
github.com/googleapis/google-cloud-go-testing
v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:
dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
github.com/gorilla/context
v1.1.1 h1:
AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8=
github.com/gorilla/context
v1.1.1/go.mod h1:
kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
github.com/gorilla/securecookie
v1.1.1 h1:
miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
github.com/gorilla/securecookie
v1.1.1/go.mod h1:
ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
github.com/gorilla/sessions
v1.2.1 h1:
DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
github.com/gorilla/sessions
v1.2.1/go.mod h1:
dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
github.com/hashicorp/golang-lru
v0.5.0/go.mod h1:
/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru
v0.5.0/go.mod h1:
/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru
v0.5.1/go.mod h1:
/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru
v0.5.1/go.mod h1:
/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/hcl
v1.0.0 h1:
0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl
v1.0.0 h1:
0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
...
@@ -177,14 +178,19 @@ github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZX
...
@@ -177,14 +178,19 @@ github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZX
github.com/klauspost/cpuid/v2
v2.2.4/go.mod h1:
RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/klauspost/cpuid/v2
v2.2.4/go.mod h1:
RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/kr/fs
v0.1.0/go.mod h1:
FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/fs
v0.1.0/go.mod h1:
FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/pretty
v0.1.0/go.mod h1:
dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty
v0.1.0/go.mod h1:
dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty
v0.2.1/go.mod h1:
ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty
v0.3.0/go.mod h1:
640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pretty
v0.3.1 h1:
flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty
v0.3.1 h1:
flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pty
v1.1.1/go.mod h1:
pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty
v1.1.1/go.mod h1:
pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text
v0.1.0/go.mod h1:
4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text
v0.1.0/go.mod h1:
4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text
v0.2.0 h1:
5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text
v0.2.0 h1:
5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text
v0.2.0/go.mod h1:
eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leodido/go-urn
v1.2.1/go.mod h1:
zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
github.com/leodido/go-urn
v1.2.4 h1:
XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
github.com/leodido/go-urn
v1.2.4 h1:
XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
github.com/leodido/go-urn
v1.2.4/go.mod h1:
7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
github.com/leodido/go-urn
v1.2.4/go.mod h1:
7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
github.com/magiconair/properties
v1.8.7 h1:
IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
github.com/magiconair/properties
v1.8.7 h1:
IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
github.com/magiconair/properties
v1.8.7/go.mod h1:
Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/magiconair/properties
v1.8.7/go.mod h1:
Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mattn/go-isatty
v0.0.14/go.mod h1:
7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty
v0.0.19 h1:
JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty
v0.0.19 h1:
JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty
v0.0.19/go.mod h1:
W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty
v0.0.19/go.mod h1:
W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mitchellh/mapstructure
v1.5.0 h1:
jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure
v1.5.0 h1:
jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
...
@@ -196,14 +202,18 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
...
@@ -196,14 +202,18 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2
v1.0.2/go.mod h1:
yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/modern-go/reflect2
v1.0.2/go.mod h1:
yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/palantir/stacktrace
v0.0.0-20161112013806-78658fd2d177 h1:
nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
github.com/palantir/stacktrace
v0.0.0-20161112013806-78658fd2d177 h1:
nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
github.com/palantir/stacktrace
v0.0.0-20161112013806-78658fd2d177/go.mod h1:
ao5zGxj8Z4x60IOVYZUbDSmt3R8Ddo080vEgPosHpak=
github.com/palantir/stacktrace
v0.0.0-20161112013806-78658fd2d177/go.mod h1:
ao5zGxj8Z4x60IOVYZUbDSmt3R8Ddo080vEgPosHpak=
github.com/pelletier/go-toml/v2
v2.0.1/go.mod h1:
r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
github.com/pelletier/go-toml/v2
v2.0.8 h1:
0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
github.com/pelletier/go-toml/v2
v2.0.8 h1:
0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
github.com/pelletier/go-toml/v2
v2.0.8/go.mod h1:
vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
github.com/pelletier/go-toml/v2
v2.0.8/go.mod h1:
vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
github.com/pkg/diff
v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:
pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors
v0.9.1/go.mod h1:
bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors
v0.9.1/go.mod h1:
bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp
v1.13.1/go.mod h1:
3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pkg/sftp
v1.13.1/go.mod h1:
3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pmezard/go-difflib
v1.0.0 h1:
4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib
v1.0.0 h1:
4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib
v1.0.0/go.mod h1:
iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib
v1.0.0/go.mod h1:
iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model
v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model
v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/rogpeppe/go-internal
v1.3.0/go.mod h1:
M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal
v1.3.0/go.mod h1:
M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal
v1.6.1/go.mod h1:
xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal
v1.8.0/go.mod h1:
WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/rogpeppe/go-internal
v1.9.0 h1:
73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal
v1.9.0 h1:
73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/russross/blackfriday/v2
v2.1.0/go.mod h1:
+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2
v2.1.0/go.mod h1:
+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sirupsen/logrus
v1.9.3 h1:
dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus
v1.9.3 h1:
dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
...
@@ -227,6 +237,7 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
...
@@ -227,6 +237,7 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
github.com/stretchr/testify
v1.3.0/go.mod h1:
M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify
v1.3.0/go.mod h1:
M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify
v1.4.0/go.mod h1:
j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify
v1.4.0/go.mod h1:
j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify
v1.5.1/go.mod h1:
5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify
v1.5.1/go.mod h1:
5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify
v1.6.1/go.mod h1:
6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify
v1.7.0/go.mod h1:
6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify
v1.7.0/go.mod h1:
6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify
v1.7.1/go.mod h1:
6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify
v1.7.1/go.mod h1:
6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify
v1.8.0/go.mod h1:
yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify
v1.8.0/go.mod h1:
yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
...
@@ -239,6 +250,8 @@ github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8
...
@@ -239,6 +250,8 @@ github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8
github.com/subosito/gotenv
v1.4.2/go.mod h1:
ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/subosito/gotenv
v1.4.2/go.mod h1:
ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/twitchyliquid64/golang-asm
v0.15.1 h1:
SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm
v0.15.1 h1:
SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm
v0.15.1/go.mod h1:
a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/twitchyliquid64/golang-asm
v0.15.1/go.mod h1:
a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/ugorji/go
v1.2.7/go.mod h1:
nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=
github.com/ugorji/go/codec
v1.2.7/go.mod h1:
WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
github.com/ugorji/go/codec
v1.2.11 h1:
BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
github.com/ugorji/go/codec
v1.2.11 h1:
BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
github.com/ugorji/go/codec
v1.2.11/go.mod h1:
UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/ugorji/go/codec
v1.2.11/go.mod h1:
UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/yuin/goldmark
v1.1.25/go.mod h1:
3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark
v1.1.25/go.mod h1:
3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
...
@@ -260,6 +273,7 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
...
@@ -260,6 +273,7 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto
v0.0.0-20191011191535-87dc89f01550/go.mod h1:
yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto
v0.0.0-20191011191535-87dc89f01550/go.mod h1:
yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto
v0.0.0-20200622213623-75b288015ac9/go.mod h1:
LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto
v0.0.0-20200622213623-75b288015ac9/go.mod h1:
LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto
v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:
T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto
v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:
T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto
v0.0.0-20210711020723-a769d52b0f97/go.mod h1:
GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto
v0.0.0-20220722155217-630584e8d5aa/go.mod h1:
IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto
v0.0.0-20220722155217-630584e8d5aa/go.mod h1:
IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto
v0.9.0 h1:
LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
golang.org/x/crypto
v0.9.0 h1:
LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
golang.org/x/crypto
v0.9.0/go.mod h1:
yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
golang.org/x/crypto
v0.9.0/go.mod h1:
yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
...
@@ -384,6 +398,8 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w
...
@@ -384,6 +398,8 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys
v0.0.0-20210423082822-04245dca01da/go.mod h1:
h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys
v0.0.0-20210423082822-04245dca01da/go.mod h1:
h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys
v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:
h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys
v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:
h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys
v0.0.0-20210615035016-665e8c7367d1/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20210615035016-665e8c7367d1/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20210806184541-e5e7981a1069/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20220704084225-05e143d24a9e/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20220704084225-05e143d24a9e/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20220908164124-27713097b956/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys
v0.0.0-20220908164124-27713097b956/go.mod h1:
oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
...
@@ -544,18 +560,22 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
...
@@ -544,18 +560,22 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
google.golang.org/protobuf
v1.24.0/go.mod h1:
r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf
v1.24.0/go.mod h1:
r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf
v1.25.0/go.mod h1:
9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf
v1.25.0/go.mod h1:
9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf
v1.26.0-rc.1/go.mod h1:
jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf
v1.26.0-rc.1/go.mod h1:
jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf
v1.28.0/go.mod h1:
HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf
v1.30.0 h1:
kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
google.golang.org/protobuf
v1.30.0 h1:
kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
google.golang.org/protobuf
v1.30.0/go.mod h1:
HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf
v1.30.0/go.mod h1:
HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1
v0.0.0-20161208181325-20d25e280405/go.mod h1:
Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1
v0.0.0-20161208181325-20d25e280405/go.mod h1:
Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1
v1.0.0-20180628173108-788fd7840127 h1:
qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
gopkg.in/check.v1
v1.0.0-20180628173108-788fd7840127/go.mod h1:
Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1
v1.0.0-20180628173108-788fd7840127/go.mod h1:
Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1
v1.0.0-20201130134442-10cb98267c6c h1:
Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1
v1.0.0-20201130134442-10cb98267c6c/go.mod h1:
JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/errgo.v2
v2.1.0/go.mod h1:
hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/errgo.v2
v2.1.0/go.mod h1:
hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/guregu/null.v4
v4.0.0 h1:
1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg=
gopkg.in/guregu/null.v4
v4.0.0 h1:
1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg=
gopkg.in/guregu/null.v4
v4.0.0/go.mod h1:
YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI=
gopkg.in/guregu/null.v4
v4.0.0/go.mod h1:
YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI=
gopkg.in/ini.v1
v1.67.0 h1:
Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1
v1.67.0 h1:
Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1
v1.67.0/go.mod h1:
pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1
v1.67.0/go.mod h1:
pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/yaml.v2
v2.2.2/go.mod h1:
hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2
v2.2.2/go.mod h1:
hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2
v2.4.0/go.mod h1:
RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3
v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3
v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3
v3.0.0-20210107192922-496545a6307b/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3
v3.0.1 h1:
fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3
v3.0.1 h1:
fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3
v3.0.1/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3
v3.0.1/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gorm.io/driver/mysql
v1.5.1 h1:
WUEH5VF9obL/lTtzjmML/5e6VfFR/788coz2uaVCAZw=
gorm.io/driver/mysql
v1.5.1 h1:
WUEH5VF9obL/lTtzjmML/5e6VfFR/788coz2uaVCAZw=
...
...
internal/controller/server.go
View file @
1a31c3a4
package
controller
package
controller
import
(
import
(
"errors"
"go-svc-tpl/api/dto"
"go-svc-tpl/api/dto"
"go-svc-tpl/internal/dao"
"go-svc-tpl/internal/dao"
"go-svc-tpl/internal/dao/model"
"go-svc-tpl/internal/dao/model"
...
@@ -57,18 +56,15 @@ func (c *ServerController) Link(ctx *gin.Context, req *dto.ServerLinkReq) error
...
@@ -57,18 +56,15 @@ func (c *ServerController) Link(ctx *gin.Context, req *dto.ServerLinkReq) error
func
(
c
*
ServerController
)
Veri
(
ctx
*
gin
.
Context
,
req
*
dto
.
ServerVeriReq
)
error
{
func
(
c
*
ServerController
)
Veri
(
ctx
*
gin
.
Context
,
req
*
dto
.
ServerVeriReq
)
error
{
// 获取验证码ID
// 获取验证码ID
id
:=
req
.
Target
id
:=
req
.
Target
//dto.ResponseSuccess(ctx, fmt.Sprintf("captcha id: %s", id))
// 判断验证码ID是否存在
// // 判断验证码ID是否存在
if
!
captcha
.
Reload
(
id
)
{
// if !captcha.Reload(id) {
return
errors
.
New
(
"invalid captcha id"
)
// return errors.New("invalid captcha id")
}
// }
// 设置响应头为图片类型
ctx
.
Header
(
"Content-Type"
,
"image/png"
)
// 将验证码图片写入响应体
// 将验证码图片写入响应体
err
:=
captcha
.
WriteImage
(
ctx
.
Writer
,
id
,
captcha
.
StdWidth
,
captcha
.
StdHeight
)
err
:=
captcha
.
WriteImage
(
ctx
.
Writer
,
id
,
90
,
50
)
// 返回错误信息或nil
// 返回错误信息或nil
return
err
return
err
}
}
internal/controller/user.go
View file @
1a31c3a4
...
@@ -4,14 +4,9 @@ import (
...
@@ -4,14 +4,9 @@ import (
"go-svc-tpl/api/dto"
"go-svc-tpl/api/dto"
"go-svc-tpl/internal/dao"
"go-svc-tpl/internal/dao"
"go-svc-tpl/internal/dao/model"
"go-svc-tpl/internal/dao/model"
"net/http"
"regexp"
"regexp"
"bytes"
"go-svc-tpl/utils/stacktrace"
"go-svc-tpl/utils/stacktrace"
"path"
"strings"
"time"
"github.com/dchest/captcha"
"github.com/dchest/captcha"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin"
...
@@ -24,7 +19,7 @@ var sessionID string
...
@@ -24,7 +19,7 @@ var sessionID string
type
IUserController
interface
{
//定义tag user 下的操作
type
IUserController
interface
{
//定义tag user 下的操作
Register
(
*
gin
.
Context
,
*
dto
.
UserRegisterReq
)
error
Register
(
*
gin
.
Context
,
*
dto
.
UserRegisterReq
)
error
GetVeri
(
*
gin
.
Context
)
(
*
dto
.
GetVeri
Resp
,
error
)
Captcha
(
*
gin
.
Context
)
(
*
dto
.
Captcha
Resp
,
error
)
Login
(
*
gin
.
Context
,
*
dto
.
UserLoginReq
)
error
Login
(
*
gin
.
Context
,
*
dto
.
UserLoginReq
)
error
GetInfo
(
*
gin
.
Context
)
(
*
dto
.
GetUserInfoResp
,
error
)
GetInfo
(
*
gin
.
Context
)
(
*
dto
.
GetUserInfoResp
,
error
)
ModifyInfo
(
*
gin
.
Context
,
*
dto
.
UserModifyInfoReq
)
error
ModifyInfo
(
*
gin
.
Context
,
*
dto
.
UserModifyInfoReq
)
error
...
@@ -80,59 +75,63 @@ func (c *UserController) Register(ctx *gin.Context, req *dto.UserRegisterReq) er
...
@@ -80,59 +75,63 @@ func (c *UserController) Register(ctx *gin.Context, req *dto.UserRegisterReq) er
}
}
// GetVeri
// GetVeri
func
(
c
*
UserController
)
GetVeri
(
ctx
*
gin
.
Context
)
(
*
dto
.
GetVeriResp
,
error
)
{
func
(
c
*
UserController
)
Captcha
(
ctx
*
gin
.
Context
)
(
*
dto
.
CaptchaResp
,
error
)
{
length
:=
captcha
.
DefaultLen
captchaID
:=
captcha
.
NewLen
(
length
)
captchaID
:=
captcha
.
New
()
captchaURL
:=
"/captcha/"
+
captchaID
+
".png"
//fmt.Print("new " + captchaID)
resp
:=
&
dto
.
GetVeriResp
{
captchaURL
:=
"/api/captcha/"
+
captchaID
+
".png"
//fmt.Print(captchaURL)
resp
:=
&
dto
.
CaptchaResp
{
CAPTCHAID
:
captchaID
,
CAPTCHAID
:
captchaID
,
CAPTCHAURL
:
captchaURL
,
CAPTCHAURL
:
captchaURL
,
}
}
ServeHTTP
(
ctx
.
Writer
,
ctx
.
Request
)
return
resp
,
nil
}
func
ServeHTTP
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
// 将验证码图片写入响应体
dir
,
file
:=
path
.
Split
(
r
.
URL
.
Path
)
//_ = captcha.WriteImage(ctx.Writer, captchaID, 90, 50)
ext
:=
path
.
Ext
(
file
)
return
resp
,
nil
id
:=
file
[
:
len
(
file
)
-
len
(
ext
)]
if
ext
==
""
||
id
==
""
{
http
.
NotFound
(
w
,
r
)
return
}
lang
:=
strings
.
ToLower
(
r
.
FormValue
(
"lang"
))
download
:=
path
.
Base
(
dir
)
==
"download"
if
Serve
(
w
,
r
,
id
,
ext
,
lang
,
download
,
captcha
.
StdWidth
,
captcha
.
StdHeight
)
==
captcha
.
ErrNotFound
{
http
.
NotFound
(
w
,
r
)
}
}
}
func
Serve
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
,
id
,
ext
,
lang
string
,
download
bool
,
width
,
height
int
)
error
{
// func ServeHTTP(w http.ResponseWriter, r *http.Request) {
w
.
Header
()
.
Set
(
"Cache-Control"
,
"no-cache, no-store, must-revalidate"
)
// dir, file := path.Split(r.URL.Path)
w
.
Header
()
.
Set
(
"Pragma"
,
"no-cache"
)
// ext := path.Ext(file)
w
.
Header
()
.
Set
(
"Expires"
,
"0"
)
// id := file[:len(file)-len(ext)]
// if ext == "" || id == "" {
var
content
bytes
.
Buffer
// http.NotFound(w, r)
switch
ext
{
// return
case
".png"
:
// }
w
.
Header
()
.
Set
(
"Content-Type"
,
"image/png"
)
// lang := strings.ToLower(r.FormValue("lang"))
captcha
.
WriteImage
(
&
content
,
id
,
width
,
height
)
// download := path.Base(dir) == "download"
default
:
// if Serve(w, r, id, ext, lang, download, captcha.StdWidth, captcha.StdHeight) == captcha.ErrNotFound {
return
captcha
.
ErrNotFound
// http.NotFound(w, r)
}
// }
// }
if
download
{
w
.
Header
()
.
Set
(
"Content-Type"
,
"application/octet-stream"
)
// func Serve(w http.ResponseWriter, r *http.Request, id, ext, lang string, download bool, width, height int) error {
}
// w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
http
.
ServeContent
(
w
,
r
,
id
+
ext
,
time
.
Time
{},
bytes
.
NewReader
(
content
.
Bytes
()))
// w.Header().Set("Pragma", "no-cache")
return
nil
// w.Header().Set("Expires", "0")
}
// var content bytes.Buffer
// switch ext {
// case ".png":
// w.Header().Set("Content-Type", "image/png")
// captcha.WriteImage(&content, id, width, height)
// default:
// return captcha.ErrNotFound
// }
// if download {
// w.Header().Set("Content-Type", "application/octet-stream")
// }
// http.ServeContent(w, r, id+ext, time.Time{}, bytes.NewReader(content.Bytes()))
// return nil
// }
// Login
// Login
func
(
c
*
UserController
)
Login
(
ctx
*
gin
.
Context
,
req
*
dto
.
UserLoginReq
)
error
{
func
(
c
*
UserController
)
Login
(
ctx
*
gin
.
Context
,
req
*
dto
.
UserLoginReq
)
error
{
//验证码
//验证码
captchaId
:=
ctx
.
Param
(
"captcha_id"
)
captchaId
:=
req
.
CAPTCHAID
value
:=
ctx
.
Param
(
"captcha_v
alue
"
)
value
:=
req
.
CAPTCHAV
alue
if
captchaId
==
""
||
value
==
""
{
if
captchaId
==
""
||
value
==
""
{
return
stacktrace
.
PropagateWithCode
(
nil
,
dto
.
BadRequest
,
"BadRequest."
)
return
stacktrace
.
PropagateWithCode
(
nil
,
dto
.
BadRequest
,
"BadRequest."
)
}
}
...
...
main.go
View file @
1a31c3a4
...
@@ -2,26 +2,8 @@ package main
...
@@ -2,26 +2,8 @@ package main
import
(
import
(
"go-svc-tpl/cmd"
"go-svc-tpl/cmd"
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-gonic/gin"
)
)
func
main
()
{
func
main
()
{
store
:=
cookie
.
NewStore
([]
byte
(
"secret"
))
// 创建 gin 引擎对象
r
:=
gin
.
Default
()
// 使用 sessions 中间件
r
.
Use
(
sessions
.
Sessions
(
"session"
,
store
))
// 注册路由和控制器
//待补充
// 启动服务器
r
.
Run
(
":8080"
)
/////////////////////////////
cmd
.
Execute
()
cmd
.
Execute
()
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment