Amber Framework
WebsiteBlogGithubDiscord
  • Introduction
  • Getting Started
  • Guides
    • Overview
    • Installation
    • Create New App
    • Directory Structure
    • Configuration
    • Docker
    • Controllers
      • Sessions
      • Request & Response Objects
      • Halt!
      • Respond With
      • Params
      • Cookies
      • Filters
      • Flash
      • Redirection
      • CSRF
    • Views
      • Basic View Helpers
      • Form Builder
    • Models
      • Granite
        • Granite's README
        • Migrations
        • Validations
        • Callbacks
        • Associations
        • Querying
        • Bulk Insertions
      • Jennifer
        • Jennifer Docs
        • Migrations
        • Models
    • Routing
      • Pipelines
      • Routes
    • Websockets
      • Channels
      • Sockets
      • JavaScript Client
    • Mailers
    • Testing
      • System Tests
  • Deployment
    • Manual Deploy
    • Digital Ocean
    • Heroku
    • Dokku
  • CLI
    • New
    • Recipes
    • Plugins
    • Generate
    • Database
    • Watch
    • Routes
    • Exec
    • Encrypt
  • Examples
    • Amber Auth
    • Crystal Debug
    • Minimal Configuration
  • Cookbook
    • From Scratch
    • Hello World
    • CORS
    • File Download
    • File Upload
    • Cookies
    • Authenticate
    • JSON API
    • JSON Mapping
    • WebSocket Chat
  • Troubleshooting
  • In Production
  • Contributing
  • Code of Conduct
  • HAVE A QUESTION?
    • Join the Discord
    • Follow on Twitter
    • Submit an issue
Powered by GitBook
On this page
  • Overview
  • Using Amber Auth Generator
  • 1. Generate Blogsy App
  • 2. Go to your project directory
  • 3. Scaffold the User Authentication
  • 4. Sign up and Sign in Pages
  • Recap
  1. Examples

Amber Auth

PreviousExamplesNextCrystal Debug

Last updated 2 years ago

Prerequisites

  • Familiar with MVC and terms such as Migrations, Database

  • Amber Framework CLI already installed ()

  • Terminal console

Overview

Virtually all web applications require a registering and authenticating users. As a result, most web frameworks have an excessive amount of options for implementing authentication. Amber Framework differs by providing a built-in generator for simple yet secure authentication that is sufficient yet easily extended at a later time. Amber allows you to get started writing your application without getting bogged down in application boilerplate.

Using Amber Auth Generator

1. Generate Blogsy App

First, we generate our app by typing the following command in a terminal console.

amber new blogsy --deps -d sqlite

The --deps will automatically install project dependencies. -d sqlite builds the project with a SQLite database.

2. Go to your project directory

Commands are performed within the root directory of our project.

cd blogsy

3. Scaffold the User Authentication

Next, we will scaffold our authentication system. The scaffold will generate several files to build a basic authentication system.

amber g auth User

The above command will give you the following output:

08:26:45 Generate    | Rendering Auth user
08:26:45 Generate    | new       config/initializers/granite.cr
08:26:45 Generate    | new       spec/models/user_spec.cr
08:26:45 Generate    | new       spec/models/spec_helper.cr
08:26:45 Generate    | new       spec/controllers/spec_helper.cr
08:26:45 Generate    | new       db/migrations/20180110202645523_create_user.sql
08:26:45 Generate    | new       db/seeds.cr
08:26:45 Generate    | new       src/models/user.cr
08:26:45 Generate    | new       src/controllers/registration_controller.cr
08:26:45 Generate    | new       src/controllers/user_controller.cr
08:26:45 Generate    | new       src/controllers/session_controller.cr
08:26:45 Generate    | new       src/views/registration/new.slang
08:26:45 Generate    | rewritten src/views/layouts/_nav.slang
08:26:45 Generate    | new       src/views/user/show.slang
08:26:45 Generate    | new       src/views/user/edit.slang
08:26:45 Generate    | new       src/views/session/new.slang
08:26:45 Generate    | new       src/handlers/authenticate.cr

To finalize installing the generated authentication system, we have to migrate the database.

amber db create migrate
08:52:25 (INFO) Database    | Created database blogsy_development
08:52:25 (INFO) Database    | Migrating db, current version: 0, target: 20180110205213147
08:52:25 (INFO) Database    | OK   20180110205213147_create_user.sql

Now we can run our local development server and see our working authentication system.

amber watch
08:53:52 Watcher    | Terminating app Blogsy...
08:53:52 Watcher    | Compiling Blogsy...
08:53:52 Watcher    | Building project Blogsy...
08:54:05 Server     | [Amber 0.6.1] serving application "Blogsy" at http://0.0.0.0:3000
08:54:05 Server     | Server started in development.
08:54:05 Server     | Startup Time 00:00:00.000596000

4. Sign up and Sign in Pages

Recap

Amber framework provides an authentication system generator that allows you to focus on build your application rather than implementation details. The built-in authentication generator is not a full-featured authentication system, it provides the basic framework and can be extended as needed.

To see the signup page visit

Installation Instructions
http://0.0.0.0:3000/signup