20210118_アウトプット(オリジナルアプリ)

アウトプット画像

今日行ったこと 5時間50分

  • 昨日の復習・アウトプット 1時間10分

  • オリジナルアプリ
    *目標設定の結合テスト完了✨ 1時間20分
    *パスワードについてより安全にするためのUI実装✨ 2時間35分
    *今日の復習・アウトプット✨ 45分



新しい発見

結合テスト:投稿機能が「ログイン」前提のとき、どうするの?

昨日から格闘していた目標設定の結合テストコード。 
ログインしていることが前提なのだか、上手くログインした状態のまま「目標設定」のページまでいけず四苦八苦。
この記事のおかげで解決できた!!!!
(できた時、めちゃくちゃ嬉しかった〜!!!😂Rspecの全部緑で出てきたときの嬉しさといったら✨)

qiita.com

この記事から理解したことは、
(1)ログイン(サインイン)に関するモジュールを作成する
(2)目標設定の結合テストにおいて(1)を読み込む
と理解。

これからの残りの2つの昨日でも「ログイン前提」となるので、
その部分だけ他のファイルに切り取れていて、対象の結合テストにおいてはメソッドを呼び出すだけなのも嬉しいな。



パスワードの一意性制約について

一意性制約って何?

  • かぶらないようにする(同じデータはNG)設定のこと

今日新しく知れたこと

パスワードに一意制約をかけてしまうと、攻撃をうけるリスクが高まること。

(1)パスワードに一意制約がかかっており重複した場合に「このパスワードもう使われているよ」とエラーが出る。
(2)これを使えば、ログインできるかも。と悪い人は考える👿
(3)Eメールの流出など他の事象と組み合わさることによって、突破できてしまう危険性。💣

入力できる試行回数を設けることが多いものの安全性をなるべく減らそう。


じゃあどうするといいの?

  • 「パスワード自体」が安全性が高いかどうか教えてあげるといい👍

  • 少ない文字列、英数字を混ぜないなどは危ない。

  • 危険性に応じてUIを変える方法もいい。(危険🔴 普通🟠 良い🟢)


その話を教えていただいて考えたこと

(1)オリジナルアプリのパスワードの一意性制約やめよう!
(2)UIの実装面白そうなのでやってみたいなあ。


「(1)パスワードの一意性やめよう!」について

そもそも、deviseのデフォルトの制限はなんだっけ?

対象 内容
email @を含むこと・存在すること
password 6文字以上であること・確認用の2回入力すること・存在すること

根拠:過去の記事参照

それを踏まえた上で、チェック。

  • なんと「一意性制約」と「存在するpresence: true」を勘違いしていたことがわかった😂

  • オリジナルアプリに「password」に一意性はかけていなかった。よかった。

  • 「全部、一意制約かけた」という勘違いを解けたのは本当によかった。

  • その後、同じパスワードで2人ユーザー登録できるか確認したら出来た。

  • パスワードについて6文字は少ないなと思ったので、こちらの記事を参考に15文字以上にすると設定変更。


2)UIの実装面白そうなのでやってみたいなあ。

  • ググって、これを応用してみることにした。

  • 応用とは、背景じゃなくてアイコン作ってやってみようと思った。

kachibito.net

つまづいたところ

  • 要素はあっているのになぜ読み込まれない?👉window.addEventListener('load',(省略)を忘れていたからだった。

出来たこと

  • 2時間半くらいかけて出来たー!!!すーごい嬉しかった。

  • アイコンのマークも2、3個つくってどの色や形だと可愛いかなと考えるのが楽しかった。

  • 設定している15文字を超えると、「安全鍵マーク」がくっきりし🔑、少ないとぼやけるように実装した。

  • 現在は、文字カウントのみなので、英数字の区別なども出来たらより良いけれど今回は良しとしよう!

出来た様子↓ https://gyazo.com/2aa768070f5a224f448aad74793fe948



感想

  • 銭神さんからの連絡が嬉しすぎた。(本当にいつもありがとうございます。感謝しかないです。)

  • JavaScriptについて「理解がまだまだ」と思っていたけれど、思いの外、基礎的な部分は理解していた。

  • 初🎉JavaScriptについてネットにあるコードから、いい感じに取り入れて実装できたのが嬉しかった・・。

  • 最近、実装が楽しすぎてしょうがない。1日でも早くプログラマーになって、じっくり考えてコードを書くことに集中する日々で暮らしたいなあ・・・🌸

  • ここ最近楽しすぎるがゆえに、5時すぎに起きて、0時以降に寝る生活になってしまっている(気付いたら会社に行く時間、気付いたら寝る時間)ので、今日は早めに寝よう。😪



覚書(12/29計画の見直し)

(1)やるべきこと (2)やりたいこと (3)やれること

(1)やるべきこと

  • 卒業要件の完成

(2)やりたいこと

(3)やれること

メンタル:楽しみながら、ゲーム感覚でいく🎮😎

時間で区切り(達成すればよし)
  • PHP 一日15分以上

  • オリジナルアプリ 1日1時間以上

追加実装のミニアプリを作り、引き出しを増やす
優先順位 内容(機能) 締め切り 達成度
1 AWS S3 12/18 完了(フリマアプリ)に実装)
2 AWS EC2 12/24 完了(フリマアプリに実装)
3 ウィザード形式 12/27 完了
4 SNS認証 12/28 完了
5 複数条件検索 12/29 完了
6 タグ付 12/31 完了
7 画像プレビュー 1/2 完了※フォーク
8 複数枚写真OK 1/4 完了※7に追加実装
9 コメント機能(即時更新) 1/8 完了
10 クレカ登録 1/10
11 パンくず 1/14
12 日本語エラー 1/18



身に付ける力(直近)

  • PHP7

  • Docker


身に付ける力(ゆくゆく・覚書)

  • ドメイン駆動開発

  • 環境構築

  • 環境変数などのOS知識

  • バージョン対応力

  • データベースをインポートする力・エクスポートする

  • GitHubActions×OpenAPIGenerator(APICilent)