- 内容
-
前はunlock_tokenを渡してロック解除できたはずなのに、いつの間にかできなくなっていた。
しかしdevise自体がバグっていてロック機能自体にに不具合がある訳ではなく、deviseがデフォルトで用意してくれるメール用のビューが間違ってる・・・。
stakoverflow Devise Account Unlock Returning “Unlock Token is Invalid”
unlock_tokeの参照方法は次のように変更せよと。。
@resource.unlock_token => @token
前はデフォルトのままでロック解除できたから、どこかのバージョンからトークンの参照方法変わったんだと思うけど、こういうさりげない変更は結構嵌まる・・・。
Devise 3.1 から Confirmation Token などがハッシュ化されるので Request Spec が失敗する
CHANGELOGに目を通していれば察知できたっぽいけど・・・。
しかしconfirmation_tokenは@resource.confirmation_tokenのままでも使えるから、@tokenに書き直しても書き直さなくても使えるけど、@resource.unlock_tokenは@tokenに書き直さないと動かないっていうのが分かりにくい。