Skip to content

Commit

Permalink
Merge pull request #24 from ARUNK2121/finalization
Browse files Browse the repository at this point in the history
refresh token: solved those adjustments now its proper
  • Loading branch information
ARUNK2121 authored Nov 7, 2023
2 parents 24ad788 + f0ab2b9 commit a8b7c63
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 44 deletions.
35 changes: 35 additions & 0 deletions pkg/api/handler/admin.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
package handler

import (
"errors"
"net/http"
"strconv"
"time"

"jerseyhub/pkg/helper"
services "jerseyhub/pkg/usecase/interface"
models "jerseyhub/pkg/utils/models"
response "jerseyhub/pkg/utils/response"

"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt"
)

type AdminHandler struct {
Expand Down Expand Up @@ -202,3 +206,34 @@ func (a *AdminHandler) DeletePaymentMethod(c *gin.Context) {
c.JSON(http.StatusOK, successRes)

}

func (a *AdminHandler) ValidateRefreshTokenAndCreateNewAccess(c *gin.Context) {

refreshToken := c.Request.Header.Get("RefreshToken")

// Check if the refresh token is valid.
_, err := jwt.Parse(refreshToken, func(token *jwt.Token) (interface{}, error) {
return []byte("refreshsecret"), nil
})
if err != nil {
// The refresh token is invalid.
c.AbortWithError(401, errors.New("refresh token is invalid:user have to login again"))
return
}

claims := &helper.AuthCustomClaims{
Role: "admin",
StandardClaims: jwt.StandardClaims{
ExpiresAt: time.Now().Add(time.Minute).Unix(),
IssuedAt: time.Now().Unix(),
},
}

token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
newAccessToken, err := token.SignedString([]byte("accesssecret"))
if err != nil {
c.AbortWithError(500, errors.New("error in creating new access token"))
}

c.JSON(200, newAccessToken)
}
44 changes: 1 addition & 43 deletions pkg/api/middleware/auth.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package middleware

import (
"jerseyhub/pkg/helper"
"time"

"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt"
)
Expand All @@ -15,50 +12,11 @@ func AdminAuthMiddleware(c *gin.Context) {
_, err := jwt.Parse(accessToken, func(token *jwt.Token) (interface{}, error) {
return []byte("accesssecret"), nil
})

if err == nil {
c.Next()
}

refreshToken := c.Request.Header.Get("RefreshToken")

// Check if the refresh token is valid.
_, err = jwt.Parse(refreshToken, func(token *jwt.Token) (interface{}, error) {
return []byte("refreshsecret"), nil
})
if err != nil {
// The refresh token is invalid.
// The access token is invalid.
c.AbortWithStatus(401)
return
}
// The access token is invalid. Check the refresh token.

// The refresh token is valid. Generate a new access token.
newAccessToken, err := CreateNewAccessTokenAdmin()
if err != nil {
// An error occurred while generating the new access token.
c.AbortWithStatus(401)
return
}
// Set the new access token in the response header.
c.Header("Authorization", "Bearer "+newAccessToken)
c.Next()
}

func CreateNewAccessTokenAdmin() (string, error) {
claims := &helper.AuthCustomClaims{
Role: "admin",
StandardClaims: jwt.StandardClaims{
ExpiresAt: time.Now().Add(time.Minute).Unix(),
IssuedAt: time.Now().Unix(),
},
}

token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
newAccessToken, err := token.SignedString([]byte("accesssecret"))
if err != nil {
return "", err
}

return newAccessToken, nil
}
2 changes: 1 addition & 1 deletion pkg/api/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func NewServerHTTP(userHandler *handler.UserHandler,
//Swagger docs
engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

// engine.POST("users/signup", userHandler.UserSignUp)
engine.GET("/validate-token", adminHandler.ValidateRefreshTokenAndCreateNewAccess)

routes.UserRoutes(engine.Group("/users"), userHandler, otpHandler, inventoryHandler, orderHandler, cartHandler, paymentHandler, wishlistHandler, categoryHandler, couponHandler)
routes.AdminRoutes(engine.Group("/admin"), adminHandler, inventoryHandler, userHandler, categoryHandler, orderHandler, couponHandler, offerhandler)
Expand Down
1 change: 1 addition & 0 deletions pkg/repository/category.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,4 +127,5 @@ func (c *categoryRepository) GetImagesOfProductsFromACategory(CategoryID int) ([
}

return images, nil

}

0 comments on commit a8b7c63

Please sign in to comment.