[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
ゆとシート2のログインに Discord のアカウントでのログインを追加したいので、現状のログイン周りの機能についてまとめた。1.06.1 をベースにしている(1.06.1 のソースコード)。
以下の手順で動く。ユーザは新規登録を済ませているものとする
index.cgiに mode=login のパラメータを URL 経由で渡すとログインページに飛ぶ(ソースコード)。
なお、mode=login でも id も添えてある場合はログインそのものの処理に飛ぶ(ソースコード)。
ログインページは form.html に html がある。パラメータに応じて出力される html が違うので注意。
form で情報を送信し、mode (login で固定)、id そして password を引数として post する。
本丸。index.cgi で mode=login であることと id があることを確認したらログイン処理に入る。 ログイン処理はsubroutine.plに記載されている。
log_in は $_[0] に id を、$_[1] にパスワードを取っている。
まず、key_get を呼び出し ID・パスワードの妥当性を検証し(ソースコード)、
妥当ならば key (セッショントークンの役割を果たす) を発行している(ソースコード)。
然る後にセッショントークンを実際に使う形にして内部で保存(ソースコード)、
ブラウザに返却する Cookie に準備する(ソースコード / こちらも)。
セッショントークンは [ユーザ名]<>[KEY] の形をとる。例えばユーザ名が Shunshun94 ならば Shunshun94<>EtlPXgjAOJTW や Shunshun94<>owRCPLfzkDP7といった値となる。実際にユーザに渡されたり内部で保存されたりするのはこの形である。
しかる後に結果をブラウザに返却する。
上述の機能追加に関連する既存の機能について。
$user_reqdを1にすればよい。
管理ユーザは$masteridで設定する。多分設定が難しくなるので注意。
ただいまコメントを受けつけておりません。