diff options
Diffstat (limited to 'auth/controller.go')
| -rw-r--r-- | auth/controller.go | 52 | 
1 files changed, 26 insertions, 26 deletions
diff --git a/auth/controller.go b/auth/controller.go index 8de7370..c5c931a 100644 --- a/auth/controller.go +++ b/auth/controller.go @@ -22,23 +22,24 @@ import (  	"github.com/golang-jwt/jwt/v5"  	"github.com/spf13/viper"  	"golang.org/x/crypto/bcrypt" -	"vidhukant.com/openbills/user"  	"net/http"  	"time"  	"vidhukant.com/openbills/errors" +	"vidhukant.com/openbills/user"  )  var ( -	COST int +	COST                  int  	AUTH_KEY, REFRESH_KEY []byte  ) +  func init() {  	COST = viper.GetInt("cryptography.password_hashing_cost")  	AUTH_KEY = []byte(viper.GetString("cryptography.auth_key"))  	REFRESH_KEY = []byte(viper.GetString("cryptography.refresh_key"))  } -func handleSignUp (ctx *gin.Context) { +func handleSignUp(ctx *gin.Context) {  	var u user.User  	ctx.Bind(&u) @@ -72,7 +73,7 @@ func handleSignUp (ctx *gin.Context) {  	ctx.JSON(http.StatusOK, nil)  } -func handleSignIn (ctx *gin.Context) { +func handleSignIn(ctx *gin.Context) {  	var req LoginReq  	ctx.Bind(&req) @@ -88,9 +89,9 @@ func handleSignIn (ctx *gin.Context) {  	}  	authToken, err := jwt.NewWithClaims(jwt.SigningMethodHS256, -		AuthClaims { -			jwt.RegisteredClaims { -				IssuedAt: jwt.NewNumericDate(time.Now()), +		AuthClaims{ +			jwt.RegisteredClaims{ +				IssuedAt:  jwt.NewNumericDate(time.Now()),  				ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Minute * 2)),  			},  			u.ID, @@ -105,10 +106,10 @@ func handleSignIn (ctx *gin.Context) {  	}  	refreshToken, err := jwt.NewWithClaims(jwt.SigningMethodHS256, -		RefreshClaims { -			jwt.RegisteredClaims { -				IssuedAt: jwt.NewNumericDate(time.Now()), -			  ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Hour * 6)), +		RefreshClaims{ +			jwt.RegisteredClaims{ +				IssuedAt:  jwt.NewNumericDate(time.Now()), +				ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Hour * 6)),  			},  			u.ID,  			u.TokenVersion, @@ -125,17 +126,17 @@ func handleSignIn (ctx *gin.Context) {  	u.Password = ""  	ctx.JSON(http.StatusOK, gin.H{ -		"auth_token": authToken, +		"auth_token":    authToken,  		"refresh_token": refreshToken, -		"data": u, +		"data":          u,  	})  } -func handleRefresh (ctx *gin.Context) { +func handleRefresh(ctx *gin.Context) {  	var req RefreshReq  	ctx.Bind(&req) -	tk, _ := jwt.ParseWithClaims(req.RefreshToken, &RefreshClaims{}, func (token *jwt.Token) (interface{}, error) { +	tk, _ := jwt.ParseWithClaims(req.RefreshToken, &RefreshClaims{}, func(token *jwt.Token) (interface{}, error) {  		return []byte(REFRESH_KEY), nil  	}) @@ -152,22 +153,21 @@ func handleRefresh (ctx *gin.Context) {  	if err != nil {  		if err == errors.ErrNotFound {  			// user doesn't exist -		  ctx.Error(errors.ErrUnauthorized) -		  ctx.Abort() -		  return +			ctx.Error(errors.ErrUnauthorized) +			ctx.Abort() +			return  		} else { -		  ctx.Error(err) -		  ctx.Abort() -		  return +			ctx.Error(err) +			ctx.Abort() +			return  		}  	} -	if (u.TokenVersion != claims.Version) { +	if u.TokenVersion != claims.Version {  		ctx.Error(errors.ErrSessionExpired)  		ctx.Abort()  		return  	} -  	if !tk.Valid {  		eat := claims.ExpiresAt.Unix()  		if eat != 0 && eat < time.Now().Unix() { @@ -181,9 +181,9 @@ func handleRefresh (ctx *gin.Context) {  	}  	authToken, err := jwt.NewWithClaims(jwt.SigningMethodHS256, -		AuthClaims { -			jwt.RegisteredClaims { -				IssuedAt: jwt.NewNumericDate(time.Now()), +		AuthClaims{ +			jwt.RegisteredClaims{ +				IssuedAt:  jwt.NewNumericDate(time.Now()),  				ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Minute * 2)),  			},  			u.ID,  |