Blossom
View SourceEasy identity for easy authentication
Usage
- 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
- 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- Create an auth module
defmodule MyApp.Auth do
use Blossom.Auth
end- 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- Plug the AuthPlug in your private router or pipeline:
plug(Blossom.AuthPlug, otp_app: :myapp)