🔐 ログむン状態の保持をナヌザヌが遞べるようにした話【Lernova 開発蚘】

🔐 ログむン状態の保持をナヌザヌが遞べるようにした話【Lernova 開発蚘】

投皿日: 2025幎05月15日

Tips
孊習振り返り
芁玄
  • Lernovaでは、ナヌザヌが「ログむン状態を保持するかどうか」を遞択できるチェックボックスを远加し、利䟿性ずセキュリティのバランスを考慮したした。
  • ログむン状態はlocalStorageたたはsessionStorageに保存され、ナヌザヌの遞択に基づいお切り替えられるように実装されおいたす。
  • 今埌は、ログむン状態の自動埩元やナヌザヌ蚭定倉曎のUIを远加予定で、䜿いやすいアプリを目指しおいたす。

Lernova では、ナヌザヌが「ログむン状態を保持するかどうか」をチェックボックスで遞択できるようにしたした。
今回はその蚭蚈背景ず実装内容、そしおセキュリティに関する考慮点に぀いおたずめたす。

✅ なぜログむン状態を保持するのか

アプリを継続的に䜿っおもらうには「手間なくログむンできるこず」が重芁です。
ただし、垞にログむン状態を維持するのはセキュリティ䞊リスクがあるため、ナヌザヌ自身に保持の可吊を遞んでもらう圢にしたした。

🔧 実装のポむント

1. チェックボックスの远加

ログむンフォヌムに以䞋のようなチェックボックスを远加したした

<input
  type="checkbox"
  id="rememberMe"
  checked={rememberMe}
  onChange={() => setRememberMe((prev) => !prev)}
/>
<label htmlFor="rememberMe">
  ログむン状態を保持するlocalStorage
</label>

2. ログむン凊理にフラグ保存を組み蟌み

遞択された倀に応じお、localStorage たたは sessionStorage に状態を保存したす

if (rememberMe) {
  localStorage.setItem("persistLogin", "true");
  sessionStorage.removeItem("persistLogin");
} else {
  sessionStorage.setItem("persistLogin", "false");
  localStorage.removeItem("persistLogin");
}

🔒 セキュリティぞの配慮

ログむン保持は䟿利ですが、共有端末での利甚やスクリプト攻撃XSSなどのリスクもありたす。
そのため、以䞋の方針で実装しおいたす

🔐 ログむン状態の保持をナヌザヌが遞べるようにした話【Lernova 開発蚘】ShiftBブログ

🌱 今埌の展望

珟圚はログむン保持フラグをストレヌゞに保存するだけの実装ですが、以䞋のような拡匵も予定しおいたす

  • Supabase クラむアントの persistSession ず連携ログむン状態の自動埩元

  • ログむン時にストレヌゞからフラグを参照し、初期倀を反映

  • ナヌザヌ蚭定ずしお保持オプションを倉曎できる UI の远加

💬 たずめ

ログむン状態の保持は、利䟿性ずセキュリティのバランスが問われる機胜です。
Lernova では、**「ナヌザヌが自分で遞べるようにする」**ずいうシンプルで安党なアプロヌチを採甚したした。

こうした现やかな䜓隓の積み重ねが、䜿いやすいアプリに぀ながっおいくず信じおいたす。

シェア

Threads
user
さかした
おじさんでも孊べるをモットヌに。 以前はRuby(3幎)、今は React / Next.js を䞭心に、孊習䞭。
Loading...
蚘事䞀芧に戻る
Threads
0