Skip to content

Commit

Permalink
Merge pull request #163 from bvquoc/main
Browse files Browse the repository at this point in the history
fix version & refactor
  • Loading branch information
kimthu09 authored Jun 4, 2024
2 parents daf1263 + af305f9 commit 2fa0331
Show file tree
Hide file tree
Showing 7 changed files with 2,236 additions and 1,072 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ jobs:

strategy:
matrix:
go-version: ["1.20", "1.21"]
node-version: ["18.18.0"]
go-version: ["1.22"]
node-version: ["20.10.0"]
os: [ubuntu-latest, macos-latest, windows-latest]
include:
- node-version: "18.18.0"
- node-version: "20.10.0"
next-env: "production"

steps:
Expand Down
20 changes: 1 addition & 19 deletions backend/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import (
"book-store-management-backend/module/user/usertransport/ginuser"
"fmt"
"log"
"net/http"

"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
Expand Down Expand Up @@ -101,7 +100,7 @@ func main() {
cfg.SMTPort)

r := gin.Default()
r.Use(CORSMiddleware())
r.Use(middleware.CORSMiddleware())
r.Use(middleware.Recover(appCtx))

docs.SwaggerInfo.BasePath = "/v1"
Expand Down Expand Up @@ -191,20 +190,3 @@ func connectDatabaseWithRetryIn60s(cfg *appConfig) (*gorm.DB, error) {

return nil, fmt.Errorf("failed to connect to database after retrying for 10 seconds: %w", err)
}

func CORSMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {

c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With")
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT, DELETE, PATCH")

if c.Request.Method == "OPTIONS" {
c.AbortWithStatus(http.StatusNoContent)
return
}

c.Next()
}
}
24 changes: 24 additions & 0 deletions backend/middleware/cors.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package middleware

import (
"net/http"

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

func CORSMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {

c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With")
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, OPTIONS, GET, PUT, DELETE, PATCH")

if c.Request.Method == "OPTIONS" {
c.AbortWithStatus(http.StatusNoContent)
return
}

c.Next()
}
}
1 change: 1 addition & 0 deletions frontend/.env
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
AUTH_SECRET=secret
NEXTAUTH_URL=http://localhost:80
AUTH_TRUST_HOST=true
76 changes: 39 additions & 37 deletions frontend/lib/auth/auth.config.js
Original file line number Diff line number Diff line change
@@ -1,40 +1,42 @@
import { NextResponse } from "next/server";

export const authConfig = {
pages: {
signIn: "/login",
forgotPassword: "/forgot-password",
pages: {
signIn: "/login",
forgotPassword: "/forgot-password",
},
providers: [],
callbacks: {
jwt({ token, user }) {
// console.log(user)
if (user) {
token.id = user;
}
return token;
},
providers: [],
callbacks: {
jwt({ token, user }) {
// console.log(user)
if (user) {
token.id = user;
}
return token;
},
session({ session, token }) {
if (token) {
session.user = token.id;
}
return session;
},
async authorized({ auth, request }) {
const user = auth?.user;
// console.log(user)
const isOnLoginPage = request.nextUrl?.pathname.startsWith("/login");
const isOnForgotPasswordPage =
request.nextUrl?.pathname.startsWith("/forgot-password");

if (user && isOnLoginPage) {
return Response.redirect(new URL("/", request.nextUrl));
}
if (user && isOnForgotPasswordPage) {
return Response.redirect(new URL("/", request.nextUrl));
}
if (!user && !isOnLoginPage && !isOnForgotPasswordPage) {
return false;
}
return true;
},
session({ session, token }) {
if (token) {
session.user = token.id;
}
return session;
},
};
async authorized({ auth, request }) {
const user = auth?.user;
// console.log(user)
const isOnLoginPage = request.nextUrl?.pathname.startsWith("/login");
const isOnForgotPasswordPage =
request.nextUrl?.pathname.startsWith("/forgot-password");

if (user && isOnLoginPage) {
return NextResponse.redirect(new URL("/", request.nextUrl));
}
if (user && isOnForgotPasswordPage) {
return NextResponse.redirect(new URL("/", request.nextUrl));
}
if (!user && !isOnLoginPage && !isOnForgotPasswordPage) {
return false;
}
return true;
},
},
};
Loading

0 comments on commit 2fa0331

Please sign in to comment.