- ベストアンサー
プログラミングでアカウントの認証を行う方法
- rubyのプログラミングでアカウントに関するプログラムを作成する際、アカウントの認証方法を考える必要があります。アカウントが存在する場合は成功とし、パスワードが違う場合は再度入力を求める処理を行います。また、アカウントが存在しない場合は存在しない旨を表示します。
- アカウントデータはテキストファイルに保存されており、名前とパスワードが順に記録されています。そのため、アカウント名とパスワードを入力した後、定義した関数verifyAccountを用いてアカウントの認証を行います。
- ログイン処理を行うためには、アカウント名とパスワードの入力が必要です。入力されたアカウント名とパスワードをverifyAccount関数に渡し、結果を変数resultに保存します。その後、結果に応じた処理を記述することでログインの成否を判断することができます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です > アカウントがある場合は成功しました 「成功しました」というのは表示するメッセージだったのですね。 プログラムを作って上手く動作したのだと勘違いしました、失礼しました。 > verifyAccount(account, password)という関数 学校の課題ということなのではっきりとは書きませんが ・前の住所の場合と同じ様にHashにファイルデータを読み込ませる hash[アカウント] = パスワード ・account有無の確認は、hashのkeyにaccountが存在するか調べる。 ・passwordの確認は、hash[account]とpasswordが一致するか調べる。 以上でできると思います。 Hashのマニュアル http://doc.ruby-lang.org/ja/1.8.7/class/Hash.html
その他の回答 (3)
- satomi3951
- ベストアンサー率71% (98/137)
余計なお世話かもしれませんが、 アカウントが存在しない場合と、パスワードが違う場合でメッセージを分けると、 アカウントの存在が発覚するので、セキュリティ的にはよろしくありません。 どちらも「アカウント名またはパスワードが違います」といったメッセージにするのがおすすめです。
補足
書き忘れましたが、学校の課題でそういう指定なんです。
- siffon9
- ベストアンサー率64% (136/211)
> アカウントがある場合は成功しました どの様なプログラムで成功したのか書かれていないと、再入力の処理をどの様に追加して良いかも答えにくいと思います。 > verifyAccount(account, password)という関数 例えば、アカウントもパスワードも一致する場合は、resultに 0 を返す。 アカウントが無い場合は 1 を返す。 アカウントが有るがパスワードが一致しない場合は 2 を返す というように作れば良いのではないでしょうか。 > result = verifyAccount(account, password)以降 上の例で考えるとresultが 0 になるまで再入力を行う処理を繰り返す、whileを使えばできますよね。 1 や 2 の場合はそれに応じたメッセージを表示させます。
補足
成功というのアカウント名があって、なおかつパスワードが一致したときのことをいいます。
- koko_u_u
- ベストアンサー率18% (216/1139)
> アカウントデータはテキストファイルの中に、名前、パスワードの順番に入っています。 じゃあ、それを適当に読み出して、何かの変数に格納するコードを書いて補足にどうぞ。 > result = verifyAccount(account, password)以降に何を書いたら良いか教えてもらえたら嬉しいです。 result に従って結果を表示するコードを書いて補足にどうそ。
補足
クラスを定義すれば、良いのでしょうか?? そうすると、result以降のの書き方は変わってきますか??