Authentication
SDK 인증 방법
SDK는 두 가지 인증 방법을 지원합니다. 일반적인 스크립트에서는 아이디/비밀번호 방식이 가장 간단하며, 이미 발급된 세션 쿠키를 사용해 직접 인증할 수도 있습니다.
Username / Password
login()을 호출하면 내부적으로 SWMaestro 서버에 로그인 요청을 보내고 세션 쿠키를 저장합니다.
import { SomaClient } from 'opensoma'
const client = new SomaClient({
username: 'user@example.com',
password: 'password',
})
await client.login()
환경변수로도 전달 가능합니다:
const client = new SomaClient({
username: process.env.OPENSOMA_USERNAME,
password: process.env.OPENSOMA_PASSWORD,
})
Session Cookie
세션 쿠키와 CSRF 토큰으로 직접 인증할 수 있습니다. login() 호출이 필요 없습니다. 브라우저 개발자 도구에서 쿠키를 직접 복사해 사용합니다.
const client = new SomaClient({
sessionCookie: '<JSESSIONID 값>',
csrfToken: '<CSRF 토큰>',
})
Credential Persistence
인증 정보를 ~/.config/opensoma/credentials.json에 저장하고 불러올 수 있습니다. 저장된 자격증명을 재사용하면 매번 로그인하지 않아도 됩니다.
저장 위치는 OPENSOMA_CONFIG_DIR 환경변수로 변경할 수 있으며, CredentialManager 생성자에 직접 경로를 전달하는 것도 가능합니다. 생성자 인자가 환경변수보다 우선합니다.
const manager = new CredentialManager('/custom/path')
await client.saveCredentials()
직접 관리하려면 CredentialManager를 사용합니다:
import { CredentialManager } from 'opensoma'
const manager = new CredentialManager()
const credentials = await manager.getCredentials()
if (credentials) {
const client = new SomaClient({
sessionCookie: credentials.sessionCookie,
csrfToken: credentials.csrfToken,
})
}
Check Status
세션이 유효한지 확인합니다. 세션이 만료되었거나 인증 정보가 없으면 false를 반환합니다.
const loggedIn = await client.isLoggedIn()
Logout
await client.logout()