feat: SSAFY OAuth 2.0 로그인 구현
All checks were successful
Server CI/CD / deploy (push) Successful in 26s
All checks were successful
Server CI/CD / deploy (push) Successful in 26s
SSAFY 인증 서버를 통한 소셜 로그인 기능 추가. 인가 코드 교환, 사용자 정보 조회, 자동 회원가입 처리. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -127,6 +127,32 @@ func (h *Handler) VerifyToken(c *fiber.Ctx) error {
|
||||
})
|
||||
}
|
||||
|
||||
func (h *Handler) SSAFYLoginURL(c *fiber.Ctx) error {
|
||||
loginURL := h.svc.GetSSAFYLoginURL()
|
||||
return c.JSON(fiber.Map{"url": loginURL})
|
||||
}
|
||||
|
||||
func (h *Handler) SSAFYCallback(c *fiber.Ctx) error {
|
||||
var req struct {
|
||||
Code string `json:"code"`
|
||||
}
|
||||
if err := c.BodyParser(&req); err != nil || req.Code == "" {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "인가 코드가 필요합니다"})
|
||||
}
|
||||
|
||||
accessToken, refreshToken, user, err := h.svc.SSAFYLogin(req.Code)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": err.Error()})
|
||||
}
|
||||
|
||||
return c.JSON(fiber.Map{
|
||||
"token": accessToken,
|
||||
"refreshToken": refreshToken,
|
||||
"username": user.Username,
|
||||
"role": user.Role,
|
||||
})
|
||||
}
|
||||
|
||||
func (h *Handler) DeleteUser(c *fiber.Ctx) error {
|
||||
if err := h.svc.DeleteUser(c.Params("id")); err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "유저 삭제에 실패했습니다"})
|
||||
|
||||
Reference in New Issue
Block a user