@@ -11,10 +11,11 @@ import { setRefreshTokenCookie } from '../../utils/cookie.helper.js';
1111 */
1212export const kakaoCallback = asyncHandler ( async ( req , res ) => {
1313 passport . authenticate ( 'kakao' , { session : false } , async ( err , profile ) => {
14+ const appDeepLink = process . env . APP_DEEP_LINK ;
1415 try {
1516 if ( err || ! profile ) {
1617 console . error ( 'Kakao auth error:' , err ) ;
17- return res . redirect ( `${ process . env . CORS_ORIGIN } /login?error=kakao_auth_failed` ) ;
18+ return res . redirect ( `${ appDeepLink } :/ /login?error=kakao_auth_failed` ) ;
1819 }
1920
2021 // 기존 회원인지 확인
@@ -28,8 +29,8 @@ export const kakaoCallback = asyncHandler(async (req, res) => {
2829 // refreshToken은 httpOnly 쿠키로 설정
2930 setRefreshTokenCookie ( res , responseDto . tokens . refreshToken ) ;
3031
31- // accessToken과 userId만 URL로 전달
32- const redirectUrl = `${ process . env . CORS_ORIGIN } /auth/callback?` +
32+ // 앱 딥링크로 accessToken과 userId 전달
33+ const redirectUrl = `${ appDeepLink } :/ /auth/callback?` +
3334 `accessToken=${ responseDto . tokens . accessToken } &` +
3435 `userId=${ responseDto . user . id } ` ;
3536
@@ -39,15 +40,15 @@ export const kakaoCallback = asyncHandler(async (req, res) => {
3940 // 임시 토큰 생성 (5분 유효)
4041 const pendingToken = await savePendingSignup ( 'KAKAO' , profile ) ;
4142
42- const redirectUrl = `${ process . env . CORS_ORIGIN } /terms?` +
43+ const redirectUrl = `${ appDeepLink } :/ /terms?` +
4344 `pendingToken=${ pendingToken } &` +
4445 `provider=KAKAO` ;
4546
4647 return res . redirect ( redirectUrl ) ;
4748 }
4849 } catch ( error ) {
4950 console . error ( 'Kakao login error:' , error ) ;
50- return res . redirect ( `${ process . env . CORS_ORIGIN } /login?error=login_failed` ) ;
51+ return res . redirect ( `${ appDeepLink } :/ /login?error=login_failed` ) ;
5152 }
5253 } ) ( req , res ) ;
5354} ) ;
@@ -57,10 +58,11 @@ export const kakaoCallback = asyncHandler(async (req, res) => {
5758 */
5859export const googleCallback = asyncHandler ( async ( req , res ) => {
5960 passport . authenticate ( 'google' , { session : false } , async ( err , profile ) => {
61+ const appDeepLink = process . env . APP_DEEP_LINK ;
6062 try {
6163 if ( err || ! profile ) {
6264 console . error ( 'Google auth error:' , err ) ;
63- return res . redirect ( `${ process . env . CORS_ORIGIN } /login?error=google_auth_failed` ) ;
65+ return res . redirect ( `${ appDeepLink } :/ /login?error=google_auth_failed` ) ;
6466 }
6567
6668 const existingUser = await authService . checkExistingUser ( 'GOOGLE' , profile . id ) ;
@@ -69,27 +71,25 @@ export const googleCallback = asyncHandler(async (req, res) => {
6971 const result = await authService . loginExistingUser ( existingUser ) ;
7072 const responseDto = new AuthResponseDto ( result . user , result . tokens ) ;
7173
72- // refreshToken은 httpOnly 쿠키로 설정
7374 setRefreshTokenCookie ( res , responseDto . tokens . refreshToken ) ;
7475
75- // accessToken과 userId만 URL로 전달
76- const redirectUrl = `${ process . env . CORS_ORIGIN } /auth/callback?` +
76+ const redirectUrl = `${ appDeepLink } ://auth/callback?` +
7777 `accessToken=${ responseDto . tokens . accessToken } &` +
7878 `userId=${ responseDto . user . id } ` ;
7979
8080 return res . redirect ( redirectUrl ) ;
8181 } else {
8282 const pendingToken = await savePendingSignup ( 'GOOGLE' , profile ) ;
8383
84- const redirectUrl = `${ process . env . CORS_ORIGIN } /terms?` +
84+ const redirectUrl = `${ appDeepLink } :/ /terms?` +
8585 `pendingToken=${ pendingToken } &` +
8686 `provider=GOOGLE` ;
8787
8888 return res . redirect ( redirectUrl ) ;
8989 }
9090 } catch ( error ) {
9191 console . error ( 'Google login error:' , error ) ;
92- return res . redirect ( `${ process . env . CORS_ORIGIN } /login?error=login_failed` ) ;
92+ return res . redirect ( `${ appDeepLink } :/ /login?error=login_failed` ) ;
9393 }
9494 } ) ( req , res ) ;
9595} ) ;
@@ -99,10 +99,11 @@ export const googleCallback = asyncHandler(async (req, res) => {
9999 */
100100export const naverCallback = asyncHandler ( async ( req , res ) => {
101101 passport . authenticate ( 'naver' , { session : false } , async ( err , profile ) => {
102+ const appDeepLink = process . env . APP_DEEP_LINK ;
102103 try {
103104 if ( err || ! profile ) {
104105 console . error ( 'Naver auth error:' , err ) ;
105- return res . redirect ( `${ process . env . CORS_ORIGIN } /login?error=naver_auth_failed` ) ;
106+ return res . redirect ( `${ appDeepLink } :/ /login?error=naver_auth_failed` ) ;
106107 }
107108
108109 const existingUser = await authService . checkExistingUser ( 'NAVER' , profile . id ) ;
@@ -111,27 +112,25 @@ export const naverCallback = asyncHandler(async (req, res) => {
111112 const result = await authService . loginExistingUser ( existingUser ) ;
112113 const responseDto = new AuthResponseDto ( result . user , result . tokens ) ;
113114
114- // refreshToken은 httpOnly 쿠키로 설정
115115 setRefreshTokenCookie ( res , responseDto . tokens . refreshToken ) ;
116116
117- // accessToken과 userId만 URL로 전달
118- const redirectUrl = `${ process . env . CORS_ORIGIN } /auth/callback?` +
117+ const redirectUrl = `${ appDeepLink } ://auth/callback?` +
119118 `accessToken=${ responseDto . tokens . accessToken } &` +
120119 `userId=${ responseDto . user . id } ` ;
121120
122121 return res . redirect ( redirectUrl ) ;
123122 } else {
124123 const pendingToken = await savePendingSignup ( 'NAVER' , profile ) ;
125124
126- const redirectUrl = `${ process . env . CORS_ORIGIN } /terms?` +
125+ const redirectUrl = `${ appDeepLink } :/ /terms?` +
127126 `pendingToken=${ pendingToken } &` +
128127 `provider=NAVER` ;
129128
130129 return res . redirect ( redirectUrl ) ;
131130 }
132131 } catch ( error ) {
133132 console . error ( 'Naver login error:' , error ) ;
134- return res . redirect ( `${ process . env . CORS_ORIGIN } /login?error=login_failed` ) ;
133+ return res . redirect ( `${ appDeepLink } :/ /login?error=login_failed` ) ;
135134 }
136135 } ) ( req , res ) ;
137136} ) ;
0 commit comments