考えていることをコードに落とし込む工程

Uncategorized

ツアーの予約アプリの開発を終えました。
アプリ

アプリの内容は、サイトに表示されているツアーを選んで支払いを済ませると、マイページに予約したツアーが表示されるというものです。

完成させるのに丸10日かかりましたが、説明してみるとかなり簡潔に聞こえますね。
実際の操作も、気になったツアーをクリックして、クレジット情報を入力して支払いを済ませるぐらいです。

しかしそれらを実現するためには多くのツールが必要で、テストを一回一回しながら、それらすべてが組み合わさってやっとできています。

簡単にできると思ってたのに、やってみると意外と手間がかかったものもあります。

今回はそんな予想外に手間のかかった中の一つについて書こうと思います。

ページを移動してもログイン状態をキープするための実装

処理の流れは以下のようになりました。

ユーザーがログインしているかどうかを判定するために、ページを移動するごとにクッキーの有無を確認。

クッキーに含まれているidをとってきて、そのidに一致するユーザーがデータベースに存在するか検索。いなければエラーを返す。

一致するユーザーがいた場合、パスワードが変更されていれば再度ログインしてもらう必要があるため、パスワードが変更されていないか確認。

データベースのユーザーのパスワード変更日時とログイン日時を比較。

パスワードの変更日時がログインの日時の後になっていたらパスワードが変更されていることになるので、ログアウト。

このような流れになります。

これらの条件をすべてクリアしてやっとユーザーがログインしたまま次のページに移動できます。

普段アマゾンなどのアプリを利用していた時は、パスワード入力画面でログインできさえすれば、その後のページの移動は一つの大部屋を歩き回るようなイメージででしたが、
実装した後だと、ページごとにドアがあってその前で入ってよいかどうか検閲を行っているようなイメージになりました。

「ページを移動する」と一言でも、それをコードで実現しようと思うと、どの時点からどの時点に移動するのか、何を移動させるのかを具体的に指示しなければいけません。

当たり前になっているものになぜそうなるのか?と、分解して考えることが好きな人には向いている作業だと思いました。

コメント

タイトルとURLをコピーしました