Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
W
WebBack
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
websystem
WebBack
Merge requests
!41
[
#25
] fcmToken 등록 로직 수정
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
[
#25
] fcmToken 등록 로직 수정
feature/#25
into
deploy
Overview
0
Commits
1
Pipelines
0
Changes
3
Merged
심재엽
requested to merge
feature/#25
into
deploy
5 months ago
Overview
0
Commits
1
Pipelines
0
Changes
3
Expand
#25 (closed)
0
0
Merge request reports
Compare
deploy
version 1
005228ca
5 months ago
deploy (base)
and
latest version
latest version
005228ca
1 commit,
5 months ago
version 1
005228ca
74 commits,
5 months ago
3 files
+
74
−
45
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
3
Search (e.g. *.vue) (Ctrl+P)
routes/authRoute.js
+
69
−
44
Options
const
express
=
require
(
'
express
'
);
const
passport
=
require
(
'
passport
'
);
const
express
=
require
(
'
express
'
);
const
passport
=
require
(
'
passport
'
);
const
MemberService
=
require
(
'
../services/memberService
'
);
const
router
=
express
.
Router
();
const
router
=
express
.
Router
();
// Google OAuth 로그인 라우터
router
.
get
(
'
/login
'
,
passport
.
authenticate
(
'
google
'
,
{
scope
:
[
'
profile
'
,
'
email
'
],
// 사용자 정보 요청을 위한 scope
failureRedirect
:
`
${
process
.
env
.
FRONT_URL
}
/login`
})
);
// Google OAuth 로그인 라우터
router
.
get
(
'
/login
'
,
(
req
,
res
,
next
)
=>
{
const
{
state
}
=
req
.
query
;
// 클라이언트에서 전달된 state(fcmToken)
console
.
log
(
"
State received at /login:
"
,
state
);
router
.
get
(
'
/google/callback
'
,
passport
.
authenticate
(
'
google
'
,
{
failureRedirect
:
`
${
process
.
env
.
FRONT_URL
}
/login`
}),
(
req
,
res
)
=>
{
const
redirectUrl
=
process
.
env
.
FRONT_URL
;
req
.
session
.
save
((
err
)
=>
{
if
(
err
)
{
console
.
error
(
'
세션 저장 오류:
'
,
err
);
return
res
.
status
(
500
).
json
({
error
:
'
서버 오류
'
});
}
res
.
redirect
(
redirectUrl
);
});
passport
.
authenticate
(
"
google
"
,
{
scope
:
[
"
profile
"
,
"
email
"
],
// 요청할 사용자 정보
state
,
// 전달받은 fcmToken을 state로 설정
})(
req
,
res
,
next
);
}
);
router
.
get
(
'
/google/callback
'
,
passport
.
authenticate
(
'
google
'
,
{
failureRedirect
:
`
${
process
.
env
.
FRONT_URL
}
/login`
}),
async
(
req
,
res
)
=>
{
// Google OAuth 인증 성공 후 state 파라미터로 전달된 fcmToken 가져오기
const
fcmToken
=
req
.
query
.
state
;
console
.
log
(
"
받아온 fcmToken
"
,
fcmToken
);
const
userEmail
=
req
.
user
.
email
;
// Google 로그인에서 가져온 email
const
redirectUrl
=
process
.
env
.
FRONT_URL
;
req
.
session
.
userEmail
=
userEmail
;
// 세션에 사용자 이메일 저장
try
{
if
(
fcmToken
)
{
// FCM 토큰 등록
await
MemberService
.
registerToken
(
userEmail
,
fcmToken
);
console
.
log
(
`FCM token registered for user:
${
userEmail
}
`
);
}
else
{
console
.
warn
(
"
No FCM token provided during login
"
);
}
}
catch
(
error
)
{
console
.
error
(
"
Error registering FCM token during login:
"
,
error
);
}
);
// 로그아웃 라우터
router
.
get
(
'
/logout
'
,
(
req
,
res
)
=>
{
if
(
req
.
session
)
{
req
.
session
.
destroy
((
err
)
=>
{
if
(
err
)
{
console
.
error
(
'
세션 삭제 오류:
'
,
err
);
return
res
.
status
(
500
).
json
({
error
:
'
서버 오류
'
});
}
const
redirectUrl
=
process
.
env
.
FRONT_URL
;
res
.
redirect
(
redirectUrl
);
});
}
else
{
// 세션이 없는 경우에도 리다이렉트
req
.
session
.
save
((
err
)
=>
{
if
(
err
)
{
console
.
error
(
'
세션 저장 오류:
'
,
err
);
return
res
.
status
(
500
).
json
({
error
:
'
서버 오류
'
});
}
res
.
redirect
(
redirectUrl
);
});
}
);
// 로그아웃 라우터
router
.
get
(
'
/logout
'
,
(
req
,
res
)
=>
{
if
(
req
.
session
)
{
req
.
session
.
destroy
((
err
)
=>
{
if
(
err
)
{
console
.
error
(
'
세션 삭제 오류:
'
,
err
);
return
res
.
status
(
500
).
json
({
error
:
'
서버 오류
'
});
}
const
redirectUrl
=
process
.
env
.
FRONT_URL
;
res
.
redirect
(
redirectUrl
);
}
});
// 사용자 삭제 라우터
});
}
else
{
// 세션이 없는 경우에도 리다이렉트
const
redirectUrl
=
process
.
env
.
FRONT_URL
;
res
.
redirect
(
redirectUrl
);
}
});
// 사용자 삭제 라우터
router
.
delete
(
'
/leave
'
,
async
(
req
,
res
)
=>
{
try
{
// 인증된 사용자 확인
@@ -81,4 +106,4 @@ router.delete('/leave', async (req, res) => {
}
});
module
.
exports
=
router
;
\ No newline at end of file
module
.
exports
=
router
;
\ No newline at end of file
Loading