サルでもわかるWEBプログラミング

フリーソフトのみでホームページ作成

ユーザ用ツール

サイト用ツール


09.emailとpasswordでパスワード制限:index.html


差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
09.emailとpasswordでパスワード制限:index.html [2018/12/22] – [7. Emailログインの実装] adash33309.emailとpasswordでパスワード制限:index.html [2018/12/22] (現在) – [方針をたてる] adash333
行 17: 行 17:
 するものとします。 するものとします。
  
-今回は、https://qiita.com/sin_tanaka/items/ea149a33bd9e4b388241と、https://www.tohuandkonsome.site/entry/2018/11/19/182438#Eメールとパスワードでユーザー管理する +今回は、以下の3つのソースコードを利用させていただこうと思います。 
- +  -https://qiita.com/sin_tanaka/items/ea149a33bd9e4b388241 
-のソースコードを利用させていただこう思います。 +  -https://www.tohuandkonsome.site/entry/2018/11/19/182438#Eメールとパスワードでユーザー管理する 
- +  -[[https://amzn.to/2EJyMuw|改訂新版 Vue.jsFirebaseで作るミニWebサ]]
-ースコード(作成中)+
  
 +ソースコード
 https://codesandbox.io/s/6xzm6wr2k3 https://codesandbox.io/s/6xzm6wr2k3
  
-これからもの +ったもの
 <html> <html>
 +<iframe src="https://codesandbox.io/embed/6xzm6wr2k3" style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe>
 </html> </html>
- 
- 
-作成中 
  
 ==== 0.用意するもの(開発環境) ==== ==== 0.用意するもの(開発環境) ====
行 147: 行 143:
 src/components/Home.vueを編集 src/components/Home.vueを編集
  
-先に、<template></template>内のbuttonのところを変更+先に、<template></template>内のbuttonのところを変更します。 
 + 
 +v-text-fieldのところに、それぞれ、v-model="username"と、v-model="password"を追加します。 
 + 
 +また、v-btnのところに、@click="emailLogin"を追加します。 
 (変更前1) (変更前1)
 <code> <code>
-<v-btn color="primary">Login</v-btn>+              <v-card-text> 
 +                <v-form> 
 +                  <v-text-field 
 +                    prepend-icon="person" 
 +                    name="login" 
 +                    label="Login" 
 +                    type="text" 
 +                  ></v-text-field> 
 +                  <v-text-field 
 +                    id="password" 
 +                    prepend-icon="lock" 
 +                    name="password" 
 +                    label="Password" 
 +                    type="password" 
 +                  ></v-text-field> 
 +                </v-form> 
 +              </v-card-text> 
 +               
 +              <v-card-actions> 
 +                <v-spacer></v-spacer> 
 +                <v-btn color="primary">Login</v-btn> 
 +              </v-card-actions> 
 </code> </code>
  
 (変更後1) (変更後1)
 <code> <code>
-<v-btn color="primary" @click="emailLogin">Login</v-btn>+              <v-card-text> 
 +                <v-form> 
 +                  <v-text-field 
 +                    prepend-icon="person" 
 +                    name="username" 
 +                    label="Username" 
 +                    type="text" 
 +                    v-model="username" 
 +                  ></v-text-field> 
 +                  <v-text-field 
 +                    id="password" 
 +                    prepend-icon="lock" 
 +                    name="password" 
 +                    label="Password" 
 +                    type="password" 
 +                    v-model="password" 
 +                  ></v-text-field> 
 +                </v-form> 
 +              </v-card-text> 
 +               
 +              <v-card-actions> 
 +                <v-spacer></v-spacer> 
 +                <v-btn color="primary" @click="emailLogin">Login</v-btn
 +              </v-card-actions>
 </code> </code>
  
 +次に、<script></script>のところにdata()関数と、emailLogin()関数を定義。
 (変更前2) (変更前2)
 <code> <code>
行 195: 行 242:
 {{:09.emailとpasswordでパスワード制限:pasted:20181222-105302.png}} {{:09.emailとpasswordでパスワード制限:pasted:20181222-105302.png}}
  
 +==== 8. ログイン状態のチェック ====
 +サイト上でログイン状態をチェックします。
  
 +App.vue内でログイン状態をチェックして、isLoginに格納します。
  
 +src/App.vueの<script></script>内に、data関数の後ろに、created関数を定義します。created関数は、Vue.jsがそのcomponentを作成したタイミングで実行されるとのことです。
  
 +<code>
 +  created: function() {
 +    firebase.auth().onAuthStateChanged(user => {
 +      console.log(user);
 +      if (user) {
 +        this.isLogin = true;
 +      } else {
 +        this.isLogin = false;
 +      }
 +    });
 +  },
 +</code>
  
 +(変更前)
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-110527.png}}
  
 +(変更後)
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-110842.png}}
  
 +先ほど、ログインしていますので、上記コード変更により、Secret.vueコンポーネントが表示されるようになりました。
  
  
  
 +==== 9. コンポーネント間の情報の受け渡しとログアウトボタン ====
  
 +src/App.vueがFirebaseから受け取ったユーザー情報userを、src/components/Secret.vueに渡して、Secret.vue上で表示します。
  
 +src/App.vueの<template>の<Editor>の部分に、user="userData"を追加します。
 +また、<script>のdata関数でuserDataを初期化し、created関数のところで、ログイン状態のときにuserDataにFirebaseからの情報userを格納します。
  
 +(変更前1)
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-111809.png}}
 +(変更後1)
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-111915.png}}
  
-途中+(変更前2) 
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-111949.png}} 
 +(変更後2) 
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-112136.png}} 
 + 
 +src/components/Secret.vue にて、src/App.vueからの情報userを受け取るために、<script>内でpros: ["user"]と記載します。 
 +ログアウトボタンは、<script>内で、buttonを作成して@click="logout"と記載し、<script>内でlogout()関数を定義します。 
 + 
 +(変更前) 
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-112542.png}} 
 + 
 +(変更後) 
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-113050.png}} 
 + 
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-113137.png}} 
 + 
 +画面上の「ログアウト」ボタンを押すと、ログアウトされて、ログインフォームのページ(Home.vue)が表示されます。 
 + 
 +{{:09.emailとpasswordでパスワード制限:pasted:20181222-113214.png}} 
 + 
 +完成です。お疲れさまでした。 
 + 
 +さらに、 
 + 
 +  -ユーザーがパスワードを忘れてしまった場合のための、パスワード再発行手続き 
 +  -誰もがemailとpasswordを登録すればログインできる(サインアップ) 
 + 
 +などの実装を追加してもよいかもしれません。 
 + 
 +===== ソースコード ===== 
 + 
 +https://codesandbox.io/s/6xzm6wr2k3 
 + 
 +作ったもの 
 +<html> 
 +<iframe src="https://codesandbox.io/embed/6xzm6wr2k3" style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe> 
 +</html>
  
 ===== 今回参考にした本 ===== ===== 今回参考にした本 =====


09.emailとpasswordでパスワード制限/index.html.1545443747.txt.gz · 最終更新: 2018/12/22 by adash333

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki