0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MoodleAdvent Calendar 2016

Day 10

なるほどわかった!Moodleの代替ログインURL

Posted at
moodle.png

Moodleの代替ログインURLについて

Moodleのサイト管理の機能に、代替ログインURL という機能があり、本来のログイン画面とは違うWebページをログイン画面に設定できます。

設定方法

設定は、サイト管理>プラグイン>認証>認証管理 のページから行います。

20161203_161357#00.png

ここにURLを設定すると、このページからしかログインできなくなりますし、ログアウトすると、このページに遷移し、ログイン待ちとなります。

たとえば、以下のようなHTMLを作成して、これをログインページとすることができます。

index.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>test</title>
<meta charset="utf-8" />
</head>
<body>
<form name="login" action="https://moodle.myuniversity.com/login/index.php" method="POST">
username:<input type="text" name="username" value=""></input><br />
password:<input type="text" name="password" value=""></input><br />
<input type="submit" name="submit" value="login">
</form>
</body>
</html>

20161203_162056#00.png

何に使うの?

例えば、代替ログインページにjavascriptやphp等のスクリプトを噛ませて、

  • 入力値をチェックする
  • 特定のIPからしかログインできなくする(他にも方法があるけど)
  • 特定の時間しかログインできなくする
  • 特定のリファラから以外は別のページにリダイレクトさせる

といった設定を、標準のloginページを改造せずに実現できるようになります。

設定をミスったら

注意書きに書かれているように、ログインできなくなります。

間違ったURLを設定することで、あなたのサイトから締め出されることになりますので注意してください。

このときは慌てずに以下のようにしてください。

1.MoodleのサーバにSSHでログインする
2.Moodleのデータベースにログインし、データベースを選択する。
3.以下のSQLを実行する。

UPDATE mdl_config SET value = '' WHERE name like 'alternateloginurl';

4.データベースからログアウトする
5.CLIでキャッシュをクリアする

$ sudo php /path/to/moodle/admin/cli/purge_caches.php

これで通常のログイン画面が表示されるようになります。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?