ð ãã°ã€ã³ç¶æ ã®ä¿æããŠãŒã¶ãŒãéžã¹ãããã«ãã話ãLernova éçºèšã
æçš¿æ¥: 2025幎05æ15æ¥
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ïŒãªã©ã®ãªã¹ã¯ããããŸãã
ãã®ããã以äžã®æ¹éã§å®è£
ããŠããŸãïŒ
çŸåšã¯ãã°ã€ã³ä¿æãã©ã°ãã¹ãã¬ãŒãžã«ä¿åããã ãã®å®è£ ã§ããã以äžã®ãããªæ¡åŒµãäºå®ããŠããŸãïŒ
Supabase ã¯ã©ã€ã¢ã³ãã® persistSession
ãšé£æºïŒãã°ã€ã³ç¶æ
ã®èªå埩å
ïŒ
ãã°ã€ã³æã«ã¹ãã¬ãŒãžãããã©ã°ãåç §ããåæå€ãåæ
ãŠãŒã¶ãŒèšå®ãšããŠä¿æãªãã·ã§ã³ã倿Žã§ãã UI ã®è¿œå
ãã°ã€ã³ç¶æ
ã®ä¿æã¯ãå©äŸ¿æ§ãšã»ãã¥ãªãã£ã®ãã©ã³ã¹ãåãããæ©èœã§ãã
Lernova ã§ã¯ã**ããŠãŒã¶ãŒãèªåã§éžã¹ãããã«ããã**ãšããã·ã³ãã«ã§å®å
šãªã¢ãããŒããæ¡çšããŸããã
ãããã现ãããªäœéšã®ç©ã¿éããã䜿ããããã¢ããªã«ã€ãªãã£ãŠãããšä¿¡ããŠããŸãã
TAã®äœ¿ãæ¹ãšãã€ã³ãã»ãã
Webã«ããããã¶ã€ã³ã®ã³ã
ãªãªãžãã«ã¢ããªå¥®éèš
èªåæ ç±å€§éžã-æè¬ãäŒããããšæããæžããŸãã-
å人éçºã®ã¢ãããŒã·ã§ã³ç¶æ(TAã®ãããã)
MBTIÃåŠç¿ã¹ã¿ã€ã«ãå·šå ã®ç§ãçŽ4ã¶æã§å®èµ°ããåŠç¿æŠç¥
TypeScriptã®åå®å šã殺ã!? å人çã¢ã³ããã¿ãŒã³ð¥
åå¿è åãïŒ3ã€ã®ãã¿ãŒã³ã®ã³ãŒãæ¯èŒã§çè§£ããNext.jsã®ã³ã³ããŒãã³ãåå²
NestJSã®ãã³ã¬ãŒã¿ãŒãšã¯ïŒ@Controllerã@Injectableã®æå³ãšäœ¿ãæ¹ãåå¿è åã
NestJSåå¿è åãïŒAppModule / Controller / Serviceã®åºæ¬æ§æãšåäœã®æµã
Nest.jsã®åºæ¬æ§æã¬ã€ã
ã³ãã¥ããã£ã楜ããããã®ã¹ããã