[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
で設定する。多分設定が難しくなるので注意。
ただいまコメントを受けつけておりません。