기능구현중
This commit is contained in:
26
backend/api/auth/synology/index.get.ts
Normal file
26
backend/api/auth/synology/index.get.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Synology SSO 로그인 시작
|
||||
* GET /api/auth/synology
|
||||
*
|
||||
* Synology SSO Server OAuth 2.0 인증 페이지로 리다이렉트
|
||||
*/
|
||||
export default defineEventHandler(async (event) => {
|
||||
const config = useRuntimeConfig()
|
||||
|
||||
if (!config.synologyServerUrl || !config.synologyClientId) {
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
message: 'Synology SSO가 설정되지 않았습니다.'
|
||||
})
|
||||
}
|
||||
|
||||
// Synology SSO Server OAuth 인증 URL
|
||||
const authUrl = new URL(`${config.synologyServerUrl}/webman/sso/SSOOauth.cgi`)
|
||||
authUrl.searchParams.set('response_type', 'code')
|
||||
authUrl.searchParams.set('client_id', config.synologyClientId)
|
||||
authUrl.searchParams.set('redirect_uri', config.synologyRedirectUri)
|
||||
authUrl.searchParams.set('scope', 'user_id')
|
||||
authUrl.searchParams.set('state', crypto.randomUUID())
|
||||
|
||||
return sendRedirect(event, authUrl.toString())
|
||||
})
|
||||
Reference in New Issue
Block a user