SaaS開発日記

Claudeでシフト入力システムの自動ログイン機能を実装してみた

はじめに

現在、Claudeを活用してシフト入力システムを開発しています。システム自体はあらかた完成している状態で(開発の経緯についてはいずれ別の記事で書くかもしれません)、今回は新たに自動ログイン機能を実装したときの話をまとめます。

シフト入力システムの前提

このシステムはスマートフォンからシフト希望を入力することを前提に設計しています。スタッフが自分のスマホからサッとシフト希望を出せる、という手軽さがポイントです。

顧客からの要望 ── 「ログインのハードルを下げてほしい」

運用に向けて顧客と打ち合わせを進める中で、こんな要望をいただきました。

「年配の方も使うので、毎回ログインIDとパスワードを入力してログインするのは抵抗感があると思う」

たしかに、ITに不慣れな方にとって毎回ID/PWを入力するのはかなりのハードルです。スマホの小さなキーボードでパスワードを打つだけでも面倒ですし、そもそもパスワードを覚えていない、というケースも容易に想像できます。

せっかく便利なシステムを作っても、ログインの時点で使ってもらえなくなっては本末転倒。この要望にはしっかり応える必要がありました。

方針:トークン+デバイス認証方式

自動ログインの実装方式として、トークン+デバイス認証方式を採用することにしました。

簡単に言うと、初回ログイン時にデバイス固有の情報とトークンを紐づけて保存し、2回目以降は同じデバイスからアクセスした場合にID/PW入力なしで自動的にログインできるようにする、という仕組みです。

  • 初回のみ:通常通りIDとパスワードでログイン
  • 2回目以降:同じスマホからアクセスすれば自動ログイン(ID/PW入力不要)

これなら年配の方でも、最初の1回だけ誰かにサポートしてもらえれば、あとはブックマークやホーム画面のアイコンをタップするだけでシフト入力画面にたどり着けます。

つまづいたポイント ── 初回の指示が大事

さて、実装はClaudeに依頼して進めたのですが、ここで一つ学びがありました。

最初の指示文はこうでした。

「トークン+デバイス認証方式で既存のシフト入力システムに自動ログイン機能を実装して」

一見すると必要な情報は伝えているように思えます。しかし、この指示だけでは期待通りの動作が得られませんでした

具体的には、以下のような問題が発生しました。

  • セッションの残存処理が不適切:ログアウト後もセッション情報が残ってしまい、意図しない状態でログイン済みと判定されてしまう
  • 自動ログイン時の画面表示が誤っていた:自動ログインが実行されたあと、正しい画面(シフト入力画面)に遷移せず、ログイン画面が表示されたままになる、あるいは中途半端な状態で表示される

これらの問題に対して修正指示を重ねることで最終的には期待通りの動作を実現できましたが、最初からもう少し具体的な指示を出していれば、手戻りを減らせたはずです。

学んだこと ── Claudeへの指示のコツ

今回の経験から得た教訓は、「何を実装するか」だけでなく「どう動いてほしいか」まで伝えることの重要性です。

たとえば、最初の指示にこんな内容を含めておくべきでした。

  • 自動ログイン成功時はログイン画面をスキップしてシフト入力画面に直接遷移すること
  • ログアウト時にはトークンやセッションを適切にクリアすること
  • 自動ログインに失敗した場合(トークン期限切れなど)は通常のログイン画面にフォールバックすること

AIに開発を依頼するときは、「実装方式」だけでなく「期待する振る舞い」を具体的に伝えることで、完成度の高いアウトプットを一度で得やすくなります。

おわりに

Claudeを使った開発は非常にスピーディーで、自動ログイン機能も比較的短い時間で実装できました。ただし、指示の出し方次第で手戻りの量が大きく変わるという点は、今後も意識していきたいところです。

シフト入力システムの過去の開発経緯についても、機会があれば別途まとめたいと思います。

同じようにClaudeで業務システムを開発している方の参考になれば幸いです。

-SaaS開発日記