{"id":230,"date":"2026-01-28T14:06:20","date_gmt":"2026-01-28T13:06:20","guid":{"rendered":"https:\/\/wp.als070414ps.hemsida.eu\/?p=230"},"modified":"2026-01-28T14:06:20","modified_gmt":"2026-01-28T13:06:20","slug":"er-modell-inloggningsapplikation","status":"publish","type":"post","link":"https:\/\/wp.als070414ps.hemsida.eu\/?p=230","title":{"rendered":"ER-modell inloggningsapplikation"},"content":{"rendered":"\n<p>Jag har valt att g\u00f6ra mitt ER-diagram p\u00e5 f\u00f6ljande vis:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"647\" src=\"https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/B830AE4A-C955-4C99-B239-AB5D54CAFE0B-1024x647.png\" alt=\"\" class=\"wp-image-233\" style=\"width:448px;height:auto\" srcset=\"https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/B830AE4A-C955-4C99-B239-AB5D54CAFE0B-1024x647.png 1024w, https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/B830AE4A-C955-4C99-B239-AB5D54CAFE0B-300x190.png 300w, https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/B830AE4A-C955-4C99-B239-AB5D54CAFE0B-768x486.png 768w, https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/B830AE4A-C955-4C99-B239-AB5D54CAFE0B.png 1183w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Allt \u00e4r p\u00e5 engelska f\u00f6r att det inte ska bli problem senare i vertabelo\/ redgate och allt b\u00f6rjar med liten bokstav (camelCase).<\/p>\n\n\n\n<p>&#8221;userId&#8221; \u00e4r prim\u00e4rnyckeln, den skall automatiskt \u00f6ka f\u00f6r varje ny anv\u00e4ndare, dvs den ska s\u00e4ttas som auto increment senare.<\/p>\n\n\n\n<p>&#8221;username&#8221;  och &#8221;password&#8221; \u00e4r ganska sj\u00e4lvf\u00f6rklarliga, anv\u00e4ndarnamn och l\u00f6senord.<\/p>\n\n\n\n<p>&#8221;email&#8221; kan vara bra att ha om jag i framtiden vill ha en &#8221;gl\u00f6mt ditt l\u00f6senord?&#8221;- funktion eller f\u00f6rmedla n\u00e5gonting viktigt till anv\u00e4ndare. Helt enkelt, bra f\u00f6r kontakt. (kanske borde vara nullable)<\/p>\n\n\n\n<p>&#8221;lastPassword&#8221; vill jag lagra f\u00f6r att se till att man inte bara v\u00e4xlar mellan ett f\u00e5tal l\u00f6senord n\u00e4r v\u00e4l det ska bytas och f\u00f6r allm\u00e4nna s\u00e4kerhetssk\u00e4l. viktigt \u00e4r \u00e4ven att den ska vara nullable.<\/p>\n\n\n\n<p>&#8221;passwordChangeDate&#8221; \u00e4r till f\u00f6r att man av s\u00e4kerhetssk\u00e4l inte ska kunna byta l\u00f6senord f\u00f6r ofta, ex. minst en vecka mellan l\u00f6senordsbyte.<\/p>\n\n\n\n<p>&#8221;failedLoginAttempt&#8221; finns, igen, av s\u00e4kerhetssk\u00e4l. jag t\u00e4nker n\u00e5got i stil med att om man misslyckas med inloggning 5 g\u00e5nger s\u00e5 f\u00e5r man inte f\u00f6rs\u00f6ka igen p\u00e5 XX minuter, eller eventuellt att kontot deaktiveras. den ska ocks\u00e5 kunna vara null.<\/p>\n\n\n\n<p>&#8221;lastLoginAttempt&#8221; m\u00e4rker tid och datum d\u00e5 du senast f\u00f6rs\u00f6kte logga in, jag t\u00e4nker att efter ca en timme efter senaste inloggningsf\u00f6rs\u00f6k s\u00e5 s\u00e4tts &#8221;failedLoginAttemps&#8221; till null. Och om &#8221;FailedLoginAttempts&#8221; \u00e4r satt till 5 s\u00e5 kan man inte logga in tills tiden har n\u00e5tt &#8221;lastLoginattempt&#8221; + XX minuter, d\u00e5 &#8221;failedLoginAttempts&#8221; s\u00e4tts till null.<\/p>\n\n\n\n<p>&#8221;active&#8221; \u00e4r till f\u00f6r att man ska kunna deaktivera sitt konto men att informationen p\u00e5 kontot fortfarande finns kvar, b\u00e5de av s\u00e4kerhetssk\u00e4l samt att kr\u00e5ngel med index skulle kunna uppst\u00e5.<\/p>\n\n\n\n<p>H\u00e4r \u00e4r \u00e4ven den mer f\u00f6rdjupade delen, d\u00e4r jag modellerat f\u00f6r banken:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"721\" src=\"https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/78B78030-3831-4B26-85AF-A04985BAC2C0-1024x721.png\" alt=\"\" class=\"wp-image-237\" srcset=\"https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/78B78030-3831-4B26-85AF-A04985BAC2C0-1024x721.png 1024w, https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/78B78030-3831-4B26-85AF-A04985BAC2C0-300x211.png 300w, https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/78B78030-3831-4B26-85AF-A04985BAC2C0-768x541.png 768w, https:\/\/wp.als070414ps.hemsida.eu\/wp-content\/uploads\/2025\/11\/78B78030-3831-4B26-85AF-A04985BAC2C0.png 1055w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>H\u00e4r \u00e4r det mesta ganska sj\u00e4lvf\u00f6rklarligt<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jag har valt att g\u00f6ra mitt ER-diagram p\u00e5 f\u00f6ljande vis: Allt \u00e4r p\u00e5 engelska f\u00f6r att det inte ska bli problem senare i vertabelo\/ redgate och allt b\u00f6rjar med liten bokstav (camelCase). &#8221;userId&#8221; \u00e4r prim\u00e4rnyckeln, den skall automatiskt \u00f6ka f\u00f6r varje ny anv\u00e4ndare, dvs den ska s\u00e4ttas som auto increment senare. &#8221;username&#8221; och &#8221;password&#8221; \u00e4r [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-230","post","type-post","status-publish","format-standard","hentry","category-okategoriserade"],"_links":{"self":[{"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=\/wp\/v2\/posts\/230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=230"}],"version-history":[{"count":3,"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=\/wp\/v2\/posts\/230\/revisions"}],"predecessor-version":[{"id":238,"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=\/wp\/v2\/posts\/230\/revisions\/238"}],"wp:attachment":[{"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.als070414ps.hemsida.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}