SSO 통합
Login with Divetobada
작동 방식
- 외부 서비스에서 버튼 클릭
- Divetobada 로그인 페이지로 이동
- 로그인 성공 시 JWT 토큰 생성 (5분 유효)
- 외부 서비스로 리다이렉트 및 자동 로그인
iframe 위젯
<iframe
src="https://divetobada.com/api/widget/login-button?redirect=YOUR_SSO_URL&service=YOUR_SERVICE"
width="320"
height="60"
></iframe>
백엔드 구현
SSO 토큰을 검증하고 사용자를 생성하세요.
// Express 예시
app.post("/sso/divetobada", async (req, res) => {
const { token } = req.body;
// JWT 검증 (SHARED_SSO_SECRET 필요)
const decoded = jwt.verify(token, SHARED_SSO_SECRET);
// 이메일로 계정 찾기 또는 생성
let user = await User.findOne({ email: decoded.email });
if (!user) {
user = await createUser({
email: decoded.email,
displayName: decoded.displayName,
username: decoded.username
});
}
// 세션 생성 후 토큰 반환
return res.json({
access_token: generateToken(user)
});
});
사용 사례
Vessel (vessel.today)에서 작동 중