LoginSignup
2

More than 3 years have passed since last update.

1分でセッション、メール認証ありのユーザー付きサーバーを立てる

Last updated at Posted at 2019-06-24

冗談と思ったっか?

本当です。
今回はphauxthという、ElixirのPhoenixをベースにしたライブラリーを紹介しようと思います。
紹介と言っても簡単にサーバーを立てる以外何もしないですが。

それにコード一行も書きません。
それほど強いです。

事前準備

Elixir, Erlang, Phoenixをインストールすること。
自分のバージョンを参考にしていただければと。
erlang 21.3
elixir 1.7.4
phoenix 1.4.6

スタート

今回の戦いは1分しかないので急ごう。
まず前述のライブラリーのインストーラーをインストールする。
直接インストールする方法もあるが、Erlangのバージョンが異なるせいでうまくいかない可能性があるので、自分でビルドしてからarchiveにインストールするのがオススメ。

git clone git@github.com:riverrun/phauxth_installer.git

ビルドとインストール。

cd phauxth_installer/phauxth_new
MIX_ENV=prod mix build
cd ../archives
mix archive.install phauxth_new-2.2.0.ez

新しいPhoenixのプロジェクトを作る。

mix phx.new phauxth_qitta
cd phauxth_qitta
mix ecto.setup

最後、ユーザーを作ろう。

mix phauxth.new --confirm

は?終わり?

DependenciesをGetしてサーバーを立ててみよう。

mix deps.get
iex -S mix phx.server

http://localhost:4000 を開いたら。
スクリーンショット 2019-06-24 15.46.21.png

new userをクリック、サインアップ。
スクリーンショット 2019-06-24 15.47.26.png

サーバーのコマンドラインを開いたらこのようなメッセージがあるはず、サンプルドメインをlocalhost:4000に変えてアクセスしたらメール認証完了。

%Bamboo.Email{assigns: %{}, attachments: [], bcc: [], cc: [], from: {nil, "admin@example.com"}, headers: %{}, html_body: nil, private: %{}, subject: "Confirm your account", text_body: "Confirm your email here http://www.example.com/confirm?key=SFMyNTY.g3QAAAACZAAEZGF0YXQAAAABbQAAAAVlbWFpbG0AAAAQdGVzdGFjY0B0ZXN0LmNvbWQABnNpZ25lZG4GAPtLPohrAQ.nVfZdoPOn7i1TtTJrgbqdDQzUEhx45Jor8ddYb9C8dw", to: [nil: "testacc@test.com"]}

スクリーンショット 2019-06-24 15.51.12.png

ログインしてみる。

スクリーンショット 2019-06-24 15.51.36.png

終わりに

メール認証に、PhauxthはBambooというライブラリーを取り入れています。
最初はローカル用のアダプターをしてるので、簡単に置き換えればそのまま認証機能を利用できます。
自分はAWS SES用のアダプターに変えてみたら30分もかかりませんでした。

一応Authenticationについて、Elixirではguardianというライブラリーが一番有名らしいが、自分はまだ使ったことないので、比較もできません。
もし両方を使った方がいらっしゃればぜひご意見を聞きたいです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2