I am adding user Authentication to my webapp and for some reason I am having issues and really don’t know how to solve it (I don’t know if it’s an error on my side or a bug).
(Just as an heads up, I am using windows and I have nmake installed)
I try to add comeonin and Bcrypt like so:
{:comeonin, "~> 5.0"},
{:bcrypt_elixir, "~> 2.0"}
Then I do mix deps,get and mix deps.compile bcrypt_elixir, which works completely well and I don’t get any errors.
When I do mix phoenix.server I get the following warning (I am using hash_pwd_salt/1):
warning: function Comeonin.Bcrypt.hash_pwd_salt/1 is undefined or private. Did you mean one of:
* hashpwsalt/1
* hashpwsalt/2
If I try using hashpwsalt/1 I get:
** (exit) an exception was raised:
** (ArgumentError) Comeonin.Bcrypt.hashpwsalt has been removed.
Add {:bcrypt_elixir, "~> 2.0"} to the deps in your mix.exs file,
and use Bcrypt.hash_pwd_salt instead.
lib/comeonin/base.ex:32: Comeonin.Bcrypt.error/2
(ecto) lib/ecto/changeset.ex:1004: Ecto.Changeset.update_change/3
(dealmailer) web/controllers/user_controller.ex:12: Dealmailer.UserController.create/2
(dealmailer) web/controllers/user_controller.ex:1: Dealmailer.UserController.action/2
(dealmailer) web/controllers/user_controller.ex:1: Dealmailer.UserController.phoenix_controller_pipeline/2
(dealmailer) lib/dealmailer/endpoint.ex:1: Dealmailer.Endpoint.instrument/4
(dealmailer) lib/phoenix/router.ex:261: Dealmailer.Router.dispatch/2
(dealmailer) web/router.ex:1: Dealmailer.Router.do_call/2
(dealmailer) lib/dealmailer/endpoint.ex:1: Dealmailer.Endpoint.phoenix_pipeline/1
(dealmailer) lib/plug/debugger.ex:123: Dealmailer.Endpoint."call (overridable 3)"/2
(dealmailer) lib/dealmailer/endpoint.ex:1: Dealmailer.Endpoint.call/2
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) c:/Users/Zastrix/Documents/Phoenix/dealmailer-phoenix/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
Then I try to downgrade my versions:
{:comeonin, "~> 4.0"},
{:bcrypt_elixir, "~> 1.0"}
And I get the dependencies and compile, everything is okay. I don’t get warnings in console when I start the app but when I do actually run it… I get this again (I am using hashpwsalt/1 here)
** (exit) an exception was raised:
** (ArgumentError) Comeonin.Bcrypt.hashpwsalt has been removed.
Add {:bcrypt_elixir, "~> 2.0"} to the deps in your mix.exs file,
and use Bcrypt.hash_pwd_salt instead.
lib/comeonin/base.ex:32: Comeonin.Bcrypt.error/2
(ecto) lib/ecto/changeset.ex:1004: Ecto.Changeset.update_change/3
(dealmailer) web/controllers/user_controller.ex:12: Dealmailer.UserController.create/2
(dealmailer) web/controllers/user_controller.ex:1: Dealmailer.UserController.action/2
(dealmailer) web/controllers/user_controller.ex:1: Dealmailer.UserController.phoenix_controller_pipeline/2
(dealmailer) lib/dealmailer/endpoint.ex:1: Dealmailer.Endpoint.instrument/4
(dealmailer) lib/phoenix/router.ex:261: Dealmailer.Router.dispatch/2
(dealmailer) web/router.ex:1: Dealmailer.Router.do_call/2
(dealmailer) lib/dealmailer/endpoint.ex:1: Dealmailer.Endpoint.phoenix_pipeline/1
(dealmailer) lib/plug/debugger.ex:123: Dealmailer.Endpoint."call (overridable 3)"/2
(dealmailer) lib/dealmailer/endpoint.ex:1: Dealmailer.Endpoint.call/2
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) c:/Users/Zastrix/Documents/Phoenix/dealmailer-phoenix/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4