SSO 통합

Login with Divetobada

작동 방식

  1. 외부 서비스에서 버튼 클릭
  2. Divetobada 로그인 페이지로 이동
  3. 로그인 성공 시 JWT 토큰 생성 (5분 유효)
  4. 외부 서비스로 리다이렉트 및 자동 로그인

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)에서 작동 중

문의

teambada1206@gmail.com