今日行ったこと 5時間50分
昨日の復習・アウトプット 1時間10分
オリジナルアプリ
*目標設定の結合テスト完了✨ 1時間20分
*パスワードについてより安全にするためのUI実装✨ 2時間35分
*今日の復習・アウトプット✨ 45分
新しい発見
結合テスト:投稿機能が「ログイン」前提のとき、どうするの?
昨日から格闘していた目標設定の結合テストコード。
ログインしていることが前提なのだか、上手くログインした状態のまま「目標設定」のページまでいけず四苦八苦。
この記事のおかげで解決できた!!!!
(できた時、めちゃくちゃ嬉しかった〜!!!😂Rspecの全部緑で出てきたときの嬉しさといったら✨)
この記事から理解したことは、
(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の実装面白そうなのでやってみたいなあ。
ググって、これを応用してみることにした。
応用とは、背景じゃなくてアイコン作ってやってみようと思った。
つまづいたところ
- 要素はあっているのになぜ読み込まれない?👉
window.addEventListener('load',(省略)
を忘れていたからだった。
出来たこと
2時間半くらいかけて出来たー!!!すーごい嬉しかった。
アイコンのマークも2、3個つくってどの色や形だと可愛いかなと考えるのが楽しかった。
設定している15文字を超えると、「安全鍵マーク」がくっきりし🔑、少ないとぼやけるように実装した。
現在は、文字カウントのみなので、英数字の区別なども出来たらより良いけれど今回は良しとしよう!
出来た様子↓ https://gyazo.com/2aa768070f5a224f448aad74793fe948
感想
銭神さんからの連絡が嬉しすぎた。(本当にいつもありがとうございます。感謝しかないです。)
JavaScriptについて「理解がまだまだ」と思っていたけれど、思いの外、基礎的な部分は理解していた。
初🎉JavaScriptについてネットにあるコードから、いい感じに取り入れて実装できたのが嬉しかった・・。
最近、実装が楽しすぎてしょうがない。1日でも早くプログラマーになって、じっくり考えてコードを書くことに集中する日々で暮らしたいなあ・・・🌸
ここ最近楽しすぎるがゆえに、5時すぎに起きて、0時以降に寝る生活になってしまっている(気付いたら会社に行く時間、気付いたら寝る時間)ので、今日は早めに寝よう。😪
覚書(12/29計画の見直し)
(1)やるべきこと (2)やりたいこと (3)やれること
(1)やるべきこと
- 卒業要件の完成
(2)やりたいこと
追加実装を学ぶためのミニアプリ作成
オリジナルアプリの作成
PHPの勉強
面白そうだから参加したい・見たい(済:やめ太郎さんのキータ表彰・yahooイベント)
読書
(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