안녕하세요,
저희 회사에서 Node.js 백엔드로 이 기능을 사용해야 해서, 관심 있는 분들을 위해 Node.js의 cypto와 Buffer를 활용한 JavaScript 참고 구현 예시를 공유합니다:
참고:
일관성을 위해 PHP 구현 예시와 동일한 변수 값을 사용하고 있습니다.
API 자격 증명 및 SSO 시크릿 키 설정
const apiKey = '4fe83002bb5fba8c9a61a65e5b4b0a3cf8233b0e4ccafc85ebd6607abab4651a';
const apiUser = 'system';
const connectSecret = 'jdhb19*Xh3!nu(#k';
sso 파라미터 설정
const ssoRecord = new URLSearchParams({
external_id: 1,
email: 'bob@example.com',
username: 'bob',
add_groups: 'eurorack',
require_activation: true,
}).toString();
const ssoPayload = Buffer.from(ssoRecord, 'utf8').toString('base64');
const signature = crypto.createHmac('sha256', connectSecret).update(ssoPayload).digest('hex');
POST 요청 전송
const updatedUser = await fetch({ // 또는 axios
method: 'POST',
url: 'https://forum.example.com/admin/users/sync_sso',
headers: {
'Api-Key': apiKey,
'Api-Username': apiUser,
'Content-Type': 'application/json',
},
body: JSON.stringify({
sso: ssoPayload,
sig: signature,
})
}).then((response) => response.json());