modulepackage
1.0.2
Repository: https://github.com/kodinggo/user-service-gb1.git
Documentation: pkg.go.dev
# README
user-service-gb1
User service kodinggo golang bootcamp 1
JWT Middleware gRPC Implementation
-
Clone repo auth-service ini, dan pastikan berjalan dengan baik. req := &pb.ValidateTokenRequest{Token: token}
-
Buat middleware sendiri pada setiap service. Hal ini agar setiap middleware dapat di custom pada setiap service. Kemudian didalamnya, call gRPC client
ValidateToken()
req := &pb.ValidateTokenRequest{Token: token} res, err := m.authClient.ValidateToken(ctx, req) if err != nil || res == nil || !res.Valid { logrus.Error(err) return c.JSON(http.StatusUnauthorized, map[string]string{"error": "invalid or expired token"}) }
-
Lalu gunakan pada echo middleware
protected := e.Group("/products") protected.Use(JWTMiddleware)
-
Buat helper untuk get user session. (Gunakan pada level handler/delivery)
func GetUserSession(c echo.Context) *model.User { u := c.Get("user") if u == nil { return nil } user, ok := u.(*model.User) if !ok { return nil } return user }
Implementasi
userSession := helper.GetUserSession(c) if userSession == nil { return c.JSON(http.StatusUnauthorized, response{ Status: http.StatusUnauthorized, Message: "unauthorized", }) }
Contoh lebih lanjut ada pada folder middleware-example
.
# Packages
No description provided by the author
No description provided by the author
No description provided by the author