約束の地

キャロの想い出

Wekan でメールアドレス認証ができない場合

環境

  • Docker 運用
  • v0.23 2017-05-21

状況

アカウントを登録してから送られてくるメールの中の、認証URLにアクセスしても何も起きない。

結論

現状普通ではどうしようもないみたいです(下掲の Opened Issue 参照)。Minor bugとありますが、結構やっかいなバグだと思います。

むりやり対応策(概略)

データベースを直接書き換える。

むりやり対応策(具体例)

Wekan のデータベースはMongoDBなのでさっさと該当箇所を書き換えましょう。以下、Docker 運用の場合ですが、それ以外でも似た感じだと思います。

1. データベースのコンテナに入る

$ sudo docker exec -it [データベースのコンテナ名] bash

2. MongoDBに入る

# mongo wekan

3. "verified"の値をtrueに書き換える

usersコレクション中のドキュメントの中のemails内、verifiedというキーに認証が行われたかどうかの値が格納されています。

以下のようにして、ユーザ名がmy_usernameの人のverifiedの値をtrueにしましょう。"address"の値には登録しているメールアドレスをそのまま入れます

> db.users.update( { "username" : "my_username" }, { $set : { "emails" : [ { "address" : "your@mail.address", "verified" : true } ] } } )

4. 完了

これでメールアドレスの認証が完了したことになりました。「通知」を有効にすれば、設定に従って以下のような通知メールが届くはずです。

f:id:gregminster:20170525204109p:plain

補足

“verified"の値の更新の際、"verified" : "true"のような指定だとエラーになります。同様に"verified" : 1でもエラーになります。

"verified" : trueと指定しなければいけません。

参考(その1)

MongoDBのコマンドに関しては以下のページがめちゃくちゃ分かりやすかったです(感謝!)。

参考(その2)

以下の Issue が参考になりました。

Powered by はてなブログ