// 회원 가입: 수업에서 받은 가입 코드가 있어야 함. 가입하면 바로 이용. import { api, toast } from "./common.js"; const main = document.getElementById("main"); const next = new URLSearchParams(location.search).get("next") || ""; const safe = (u) => (u && u.startsWith("/") && !u.startsWith("//") ? u : ""); main.innerHTML = `

회원 가입

수업에서 교수자에게 받은 가입 코드가 있어야 가입할 수 있습니다. 가입하면 바로 사례와 문제를 볼 수 있어요.

이미 회원인가요? 로그인

`; document.getElementById("f").addEventListener("submit", async (e) => { e.preventDefault(); const v = Object.fromEntries(new FormData(e.target).entries()); if (v.password !== v.password2) return toast("비밀번호 확인이 일치하지 않습니다.", true); delete v.password2; const btn = e.target.querySelector("button"); btn.disabled = true; try { await api("/api/members/signup", { method: "POST", body: v }); await api("/api/members/login", { method: "POST", body: { username: v.username, password: v.password } }); toast("가입했습니다!"); location.href = safe(next) || "/"; } catch (err) { toast(err.message, true); btn.disabled = false; } });