Manual Installation
Create
mochi.cr
in initalizers and paste this in:require "mochi"
Create a migration and paste in:
Granite:
```sql -- +micrate Up CREATE TABLE users ( id INTEGER NOT NULL PRIMARY KEY, email VARCHAR, password_digest VARCHAR, created_at TIMESTAMP, updated_at TIMESTAMP );
-- +micrate Down
DROP TABLE IF EXISTS users;
```
or
**Jennifer:**
```crystal
class CreateUser < Jennifer::Migration::Base
def up
create_table(:users) do |t|
t.string :email
t.string :password_digest
t.timestamp :created_at
t.timestamp :updated_at
end
end
def down
drop_table(:users)
end
end
```
Migrate:
Granite:
amber db migrate
or
Jennifer:
crystal sam.cr -- db:migrate
Create a controller titled
user_controller.cr
and paste in this file:Create a controller titled
session_controller.cr
and paste in this file:Add these to your routes:
Change
pipeline :web
topipeline :web, :auth
and add:plug CurrentUser.new
Create an
:auth
pipeline with:pipeline :auth do plug Authenticate.new end
Create a new route section just for
:auth
:routes :auth do get "/profile", UserController, :show get "/profile/edit", UserController, :edit patch "/profile", UserController, :update get "/signout", SessionController, :delete end
Add this to your
:web
routes:get "/signin", SessionController, :new post "/session", SessionController, :create get "/signup", UserController, :new post "/registration", UserController, :create
Create a piple titled
authenticate.cr
and paste in this file:Copy & Paste all the views found here:
Open
config/application.cr
and between the# Start Generator
&# End Generator
add:require "../src/models/**" require "../src/pipes/**"
Open
application_controller.cr
and add:def current_user context.current_user end
Done! And that's why we have a CLI.
Last updated
Was this helpful?