2016年10月17日月曜日

「Phoenix」フレームワークでユーザー認証(モデル)

Phoenix」フレームワークでユーザー認証(モデル)です。 Nithin Bekalさんのブログで会員登録、ログインのユーザー認証について説明されています。 素晴らしいブログです。

挫折の海に溺れかかっていますので、少しづつ進めていくことにします。

/web/models/user.ex(「password」列をバーチャルで設けているところがミソ)
schema "users" do
  field :email, :string
  field :crypted_password, :string
  field :password, :string, virtual: true
  timestamps
end
/web/models/registration.ex(登録の際「crypted_password」列にハッシュ化されたパスワードを保存する)
defmodule HelloPhoenix.Registration do
  import Ecto.Changeset, only: [put_change: 3]

  def create(changeset, repo) do
    changeset
    |> put_change(:crypted_password, hashed_password(changeset.params["password"]))
    |> repo.insert()
  end

  defp hashed_password(password) do
    Comeonin.Bcrypt.hashpwsalt(password)
  end
end

参考サイト
User Authentication from Scratch in Elixir and Phoenix(Nithin Bekalさん)
Ecto.Schema(Ecto)
Ecto.Changeset(Ecto)
「Phoenix」フレームワークでElixirのパスワードハッシュライブラリ「Comeonin」

0 件のコメント:

コメントを投稿