ex0ch icon indicating copy to clipboard operation
ex0ch copied to clipboard

認証についての改善提案

Open frictionsmooth opened this issue 2 years ago • 9 comments

EX0chの認証機能についての改善提案です。 現在の認証機能は書き込みの度に認証が必要でかなり不便です。 ですので以下を提案させていただきます。

  • 認証は忍法帖と統合し、忍法帖で認証したかを判定する。
  • ある程度の専用ブラウザに対応するために、認証していない方へは別ページへのリンクを表示し、別ページで認証の処理をする。
  • hcaptchaからCloudflare Turnstileへ変更。
  • 設定で再認証が必要になる期間を設定できるようにする。

frictionsmooth avatar Nov 20 '23 17:11 frictionsmooth

Turnstileは調べて見ましたがかなりいいですね これなら手間もかからずユーザビリティも良好です

PrefKarafuto avatar Nov 21 '23 14:11 PrefKarafuto

移行はかなり簡単なようですね https://developers.cloudflare.com/turnstile/migration/migrating-from-hcaptcha/

PrefKarafuto avatar Dec 04 '23 17:12 PrefKarafuto

現時点での構想 ・忍法帖と統合すると余計なユーザートラッキングが生じるので、あくまで別個で、管理画面の設定で併用も可という仕組みにする ・/infoフォルダ下に/.authフォルダを用意し、認証コードとセッションIDを結びつけるハッシュテーブルAと、セッションIDと有効期限を結びつけるハッシュテーブルBの二つを設定 ・テーブルBにユーザーのセッションIDが無ければ未認証とする ・認証は別ページで、hCaptcha若しくはTurnstileを管理画面で設定 ・認証に成功したらセッションIDとセキュリティキーのクッキーを発行し、認証コードを認証ページの画面に表示、ここでテーブルAを、有効期限を認証から数分間で設定 ・ユーザーが書き込み画面に戻り、認証コードをメール欄に!auth:xxxxxxxxのような形で入力、確認 ・コードを確認し、期限内であればテーブルBを1ヶ月の有効期限とともに設定し、クッキーにセッションIDとセキュリティキーを出力

PrefKarafuto avatar Dec 07 '23 16:12 PrefKarafuto

私がコードを書くにあたって変更の相談したいことがあるのですが

・ユーザーが書き込み画面に戻り、認証コードをメール欄に!auth:xxxxxxxxのような形で入力、確認

これに関してはauthxxxxxxxxに変更してもいいでしょうか 理由としては記号があるとスマホでコピーがしづらくなるとの意見が私に寄せられたので。

認証ページ(php)については、レイアウトや認証コード作成の処理等がありますので、仮実装したものをお渡しします。 そちらで最終調整をお願いします。 よろしくお願いいたします。

frictionsmooth avatar Dec 23 '23 00:12 frictionsmooth

すみません。追加です。

・認証に成功したらセッションIDとセキュリティキーのクッキーを発行し、認証コードを認証ページの画面に表示、ここでテーブルAを、有効期限を認証から数分間で設定

ここなんですが、認証ページ側でcookieの処理をしても大丈夫なのでしょうか。 対応していないブラウザがあるような。 認証コード入力時に処理の方がいいですかね。

frictionsmooth avatar Dec 23 '23 00:12 frictionsmooth

基本は認証コードを入力させる感じですね あくまでcookieの情報は対応している場合のみの処理簡略化オプションみたいな

PrefKarafuto avatar Dec 23 '23 13:12 PrefKarafuto

私が時間かかりすぎてそちらで実装予定らしく申し訳ないです。

frictionsmooth avatar Mar 01 '24 10:03 frictionsmooth

認証はとりあえず忍法帖で行きます

PrefKarafuto avatar Mar 01 '24 11:03 PrefKarafuto

忍法帖に依存しない形の認証を試験的に実装

PrefKarafuto avatar Jun 07 '24 08:06 PrefKarafuto