34836


[devise](https://github.com/plataformatec/devise) から
[sorcery](https://github.com/Sorcery/sorcery) に移行できるかどうかを検討しています。

とくにdeviseでencryptしたパスワード(デフォルトのbcryptを利用しています)をsorceryに移行できるかどうかについて知見がある方がいらっしゃればアドバイスをいただきたいです。

以下は確認済みです。

  * deviseでencryptした値をsorceryで使いまわすことができない 
    * crypted_passwordカラムの値をcrypted_passwordカラムに入れてもログインできないことは確認済み


CC BY-SA 3.0
2017-05-19T06:59:40.857
34829
2018-07-07T08:23:43.353
2018-07-07T08:23:43.353
754
22531
question
ruby-on-rails devise sorcery
devise から sorcery への移行について


  * devise, sorceryともにsaltの保存場所が異なる 
    * sorceryはsaltカラムに、deviseはcrypted_passwordにそれぞれ保存
  * 以下の記事にあるようにbcryptではencryptしたパスワードを復元することができない

<https://stackoverflow.com/questions/15253796/decrypting-a-devise-
password/15254056#15254056>

上記の点からdeviseからsorceryへの移行は現実的ではないという結論に至りました。


CC BY-SA 3.0
2017-05-19T09:38:19.813
34836
2017-05-19T09:38:19.813
2017-05-23T12:38:55.250
-1
22531
34829
answer


devise も、 sorcery もパスワードの暗号化方式が選択できますので、確認が必要ですが、双方とも bcrypt
で、デフォルトに近い設定で、動作させていた場合、以下の方式で移行できると思います。

  * Devise における Pepper -> sorcery における salt
  * Devise における encrypted_password -> sorcery における crypted_password

Devise と Sorcery では、それぞれは上記のような対応関係にある様子です。

もちろん、その他いろいろな機能がひっついてきてるので、検証は必ず必要ではありますが、上記をベースに移行作業(の検証)を進めることができると思います。


CC BY-SA 4.0
2018-07-07T08:23:04.120
45384
2018-07-07T08:23:04.120
754
34829
answer