いくつか問題に感じるところがあったため、新規登録ページやログインページを作り直しました。

今までは入力したメールアドレス宛てにアカウント作成用のリンク (URL) を送っていましたが、今回から6桁の確認コードを送るようにしました。
主にモバイルの場合ですが、メールに記載されているリンクをタップすると基本的にはデフォルトのブラウザで開くことになると思います。
もしアプリ内ブラウザなどのデフォルトではないブラウザでAnnictに登録しようとしたとき、リンクがデフォルトブラウザで開かれると面倒ということがあります。
新規登録確認用のコードを送るようにすることで、開いているブラウザにコードを入力すればその場でアカウントが作成できるようになって便利かなと思います。

そもそもですが、Annictには2つのログイン方法があります。
まず確認用リンクのほうですが、こちらもユーザー登録と同じくリンクではなく6桁の確認コードを送るようにしました。
パスワードでログインのほうは、今まではやんわりと非推奨にしており、確認用リンクでログインするのをデフォルトとしていました。
パスワードを使ったログインは廃止する方向で考えていましたが、最近はパスワード + TOTP (ワンタイムパスワード) での認証も悪くないのではと思うようになりました。
今はまだTOTPによる二要素認証はできないですが、今後追加することを考えてパスワードでのログインもメールでのログインと同じようにできるようなフローにしました。
具体的には、ログインページでメールアドレスを入力したとき、もしパスワードが設定されていたらパスワードでログインするページを表示し、設定されていなかったら確認コードを入力するページを表示するようにしました。
今まではパスワードでログインするとき、ログインページ (/sign_in) にアクセスしたあとパスワードログインページ (/legacy/sign_in) にアクセスする必要がありましたが、それが統一された形になります。
そしてパスワードを再設定する機能も復活させています。
パスワードが設定されているときにはパスワードでログインするページが表示されますが、そこにパスワード再設定ページへのリンクを置いています。
パスワードを再設定したい場合はそちらからお願いします。
ちなみに今はパスワードを設定していないが設定したいという場合は、パスワード設定ページで設定することができます。
パスワードを削除する (確認コードだけでログインできるようにする) という機能はまだありません。これは今後追加したいなと思います。
また、Facebookでログインする機能を削除しています。こちらは長い間動いていませんでした…。
Facebookから「あなたのFacebookアプリに問題がある」と言われて無効化され、対応しても要領を得ない、ということが過去に何度もあり、運用コストがかかるので放置してしまっていました。
今までRuby on RailsでAnnictを作ってきましたが、今回の新規登録・ログインまわりはGoで再実装しています。
RailsからGoに移行し始めました。
詳細は以下のページで公開しているので、興味がある方はぜひご覧下さい。
個人開発のWebサービスをRuby on RailsからGo言語へ移行している | shimbaco
今後しばらくはAnnict DBとAnnict APIまわりを中心に改修していこうかなと思っています。
Annictの屋台骨であるアニメデータをもっと編集しやすくしたいですし、内部のデータ構造がもろに影響している部分でもあるので、他のページを改修する前にデータ構造も含めて改修したいです。
もしAnnict DBやAnnict APIに対してもっとこうなっていて欲しいといったご要望があれば、このフォーラムやDiscordまでお願いします。
すでに頂いているものも含め、すぐに対応できそうなものであれば一緒に対応したいと思います。
もっと使いやすく、もっと運用しやすくしたいAnnictをよろしくお願いします。