Hex.pm Version builds.sr.ht status

Easy identity for easy authentication

Usage

  1. Add to your config:
config :myapp,
  ecto_repos: [MyApp.Repo],
  db_url: "ecto://postgres:postgres@localhost/myapp"

config :myapp, Blossom,
  secret: "your-secret",
  audience: "localhost",
  expiration: 43200,
  issuer: "myapp",
  realm: "myapp",
  jwt_key: :jwt,
  user_key: :user,
  users_controller: MyApp.Controllers.Users
  1. Add to your migrations:
defmodule MyApp.Repo.Migrations.Init do
  use Ecto.Migration

  def up do
    Blossom.Migrations.up()
  end

  def down do 
    Blossom.Migrations.down()
  end
end
  1. Create an auth module
defmodule MyApp.Auth do
  use Blossom.Auth
end
  1. Create controllers, models, and schemas:
defmodule MyApp.Schemas.Users do
  use Blossom.Schemas.Users
end

defmodule MyApp.Models.Users do
  use Blossom.Models.Users
end

defmodule MyApp.Controllers.Users do
  use Blossom.Controllers.Users
end

defmodule MyApp.Schemas.Organizations do
  use Blossom.Schemas.Organizations
end

defmodule MyApp.Models.Organizations do
  use Blossom.Models.Organizations
end

defmodule MyApp.Controllers.Organizations do
  use Blossom.Controllers.Organizations
end

defmodule MyApp.Schemas.OrganizationsRoles do
  use Blossom.Schemas.OrganizationsRoles
end

defmodule MyApp.Models.OrganizationsRoles do
  use Blossom.Models.OrganizationsRoles
end

defmodule MyApp.Controllers.OrganizationsRoles do
  use Blossom.Controllers.OrganizationsRoles
end
  1. Plug the AuthPlug in your private router or pipeline:
plug(Blossom.AuthPlug, otp_app: :myapp)