Files
weeklyreport/server/api/auth/synology/index.get.ts

23 lines
881 B
TypeScript

/**
* Synology SSO 로그인 시작
* GET /api/auth/synology
*
* Synology SSO Server OAuth 2.0 인증 페이지로 리다이렉트
*/
export default defineEventHandler(async (event) => {
// 하드코딩 테스트
const synologyServerUrl = 'https://sso.osolit.net'
const synologyClientId = 'afa90b7b4a9773af41f2c7b110f92d6e'
const synologyRedirectUri = 'https://weeklyreport.turbosoft.kr/api/auth/synology/callback'
// Synology SSO Server OAuth 인증 URL
const authUrl = new URL(`${synologyServerUrl}/webman/sso/SSOOauth.cgi`)
authUrl.searchParams.set('response_type', 'code')
authUrl.searchParams.set('client_id', synologyClientId)
authUrl.searchParams.set('redirect_uri', synologyRedirectUri)
authUrl.searchParams.set('scope', 'user_id')
authUrl.searchParams.set('state', crypto.randomUUID())
return sendRedirect(event, authUrl.toString())
})