23 lines
881 B
TypeScript
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())
|
|
})
|