Skip to content

Commit 1390502

Browse files
fix(GIST-18): auth flow with redirection to frontend
* wip(GIST-18): added registration + login on github and google * wip(GIST-18): added local auth * fix(GIST-18): set redirection and cookie storage for auth * fix(GIST-18): redirection to frontend
1 parent 41633d4 commit 1390502

File tree

3 files changed

+27
-14
lines changed

3 files changed

+27
-14
lines changed

auth/controller.go

+17-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package auth
22

33
import (
4+
"github.com/gistapp/api/utils"
45
"github.com/gofiber/fiber/v2"
56
)
67

@@ -17,7 +18,16 @@ type AuthLocalVerificationValidator struct {
1718

1819
func (a *AuthControllerImpl) Callback() fiber.Handler {
1920
return func(c *fiber.Ctx) error {
20-
return AuthService.Callback(c)
21+
token, err := AuthService.Callback(c)
22+
if err != nil {
23+
return c.Status(400).SendString(err.Error())
24+
}
25+
token_cookie := new(fiber.Cookie)
26+
token_cookie.Name = "gists.access_token"
27+
token_cookie.HTTPOnly = false
28+
token_cookie.Value = token
29+
c.Cookie(token_cookie)
30+
return c.Redirect(utils.Get("FRONTEND_URL"))
2131
}
2232
}
2333

@@ -59,7 +69,12 @@ func (a *AuthControllerImpl) VerifyAuthToken() fiber.Handler {
5969
return c.Status(400).SendString(err.Error())
6070
}
6171

62-
return c.JSON(fiber.Map{"token": jwt_token})
72+
token_cookie := new(fiber.Cookie)
73+
token_cookie.Name = "gists.access_token"
74+
token_cookie.HTTPOnly = true
75+
token_cookie.Value = jwt_token
76+
c.Cookie(token_cookie)
77+
return c.Status(200).JSON(fiber.Map{"message": "You are now logged in"})
6378
}
6479
}
6580

auth/service.go

+7-11
Original file line numberDiff line numberDiff line change
@@ -90,39 +90,35 @@ func (a *AuthServiceImpl) VerifyLocalAuthToken(token string, email string) (stri
9090
return jwt_token, err
9191
}
9292

93-
func (a *AuthServiceImpl) Callback(c *fiber.Ctx) error {
93+
func (a *AuthServiceImpl) Callback(c *fiber.Ctx) (string, error) {
9494
auth_user, err := goth_fiber.CompleteUserAuth(c)
9595
if err != nil {
9696
log.Error(err)
97-
return ErrCantCompleteAuth
97+
return "", ErrCantCompleteAuth
9898
}
9999

100100
user_md, _, err := a.GetUser(auth_user)
101101

102102
if err == nil {
103103
token, err := utils.CreateToken(user_md.Email, user_md.ID)
104104
if err != nil {
105-
return err
105+
return "", err
106106
}
107-
return c.JSON(fiber.Map{
108-
"token": token,
109-
})
107+
return token, nil
110108
}
111109

112110
user_md, err = a.Register(auth_user)
113111

114112
if err != nil {
115-
return err
113+
return "", err
116114
}
117115

118116
jwt, err := utils.CreateToken(user_md.Email, user_md.ID)
119117
if err != nil {
120-
return err
118+
return "", err
121119
}
122120

123-
return c.JSON(fiber.Map{
124-
"token": jwt,
125-
})
121+
return jwt, nil
126122
}
127123

128124
func (a *AuthServiceImpl) GetUser(auth_user goth.User) (*user.User, *AuthIdentity, error) {

server/server.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package server
22

33
import (
44
"github.com/MarceloPetrucio/go-scalar-api-reference"
5+
"github.com/gistapp/api/utils"
56
"github.com/gofiber/fiber/v2"
67
"github.com/gofiber/fiber/v2/log"
78
"github.com/gofiber/fiber/v2/middleware/cors"
@@ -44,7 +45,8 @@ func (s *Server) Ignite(routers ...DomainRouter) {
4445
})
4546

4647
s.app.Use(cors.New(cors.Config{
47-
AllowOrigins: "*",
48+
AllowCredentials: true,
49+
AllowOrigins: utils.Get("FRONTEND_URL"),
4850
}))
4951

5052
s.app.Use(logger.New())

0 commit comments

Comments
 (0)