Home > Perl / CGI > E-mail でログインする(Drupal)

E-mail でログインする(Drupal)

  • Posted by: よっく
  • 2005年12月22日 13:00
  • Perl / CGI

LoginToboggan モジュール
http://drupal.org/node/34309

1. Allow users to login using either their username OR their email address.
2. Allow users to define their own password during registration.
3. Allow users to login immediately after registration.
4. Provide a login form on Access Denied pages for non-logged-in (anonymous) users.
5. The module provides two login block options: One uses DHTML to display the form immediately upon clicking "log in". The other brings the user to a separate page, but returns the user to their original page upon login completion.

ただ、pre- and post- new-forms-api HEAD versions で動作するらしくうまく動かない。

Log in with E-mail パッチ
http://drupal.org/node/35110

これもまた古くなっていて動作せず。

そこで、user.module を以下のように修正。
(+の行を追加する)960行目前後

// Try to log in the user locally:
$user = user_load(array('name' => $name, 'pass' => $pass, 'status' => 1));

+ // Try to log in the user locally with E-Mail
+ if(!$user->uid) {
+ $user = user_load(array('mail' => $name, 'pass' => $pass, 'status' => 1));
+ }

// Strip name and server from ID:
if ($server = strrchr($name, '@')) {
$name = substr($name, 0, strlen($name) - strlen($server));
$server = substr($server, 1);
}

メールアドレスでログインできた。

Comments:4

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

imagine from drupal.jp 2006年1月24日 06:24

googleから辿り着きました。

コードを見せてもらいましたが、これだとユーザ名とメールのユーザ名が一致しないとダメだと思うのですが……。^^;

ex:
foo foo@example.com -> ok
bar foo@example.com -> ng

yokku 2006年1月24日 10:11

ありがとうございます

しかし、ログインできてます

追加した行はここだけなのですが、

+ if(!$user->uid) {
+ $user = user_load(array('mail' => $name, 'pass' => $pass, 'status' => 1));
+ }

この後の行に問題があるのでしょうか・・・?

imagine from drupal.jp 2006年1月24日 22:46

こんばんは。

まずはすみません、私の早とちりだったようです。
その処理の後にDrupal IDの処理があるのでうまくいかないように思ったのですが、
ソースを確認したところ、全てに "!$user->uid &&" があるのでログインはできる
ようです。

ただし、これだけの変更ですと、Drupalモジュール(分散認証)が無効、かつ
入力したメールアドレスに誤りがないという前提条件が必要になるので、これを
見た他のユーザがこのまま使うことを考えると、少々不安が残るというのが正直な
ところです。
出過ぎたことを書きましたが、悪しからずご了承下さい。

よっく 2006年1月25日 12:46

どうもありがとうございます

>(分散認証)

を無効にしている場合限定ですね

>メールアドレスに誤りがないという前提条件

これはどういうことですか?

> 他のユーザがこのまま使うことを考えると、少々不安が残る

こちらにご回答いただいていますね、ありがとうございます
http://drupal.jp/node/122
このモジュールが4.6に対応していれば話は早いのですけどね。

Trackbacks:0

TrackBack URL for this entry
http://yokku.net/mt/mt-tb.cgi/87
Listed below are links to weblogs that reference
E-mail でログインする(Drupal) from よっくらぼ

Home > Perl / CGI > E-mail でログインする(Drupal)

Search
Feeds

Return to page top