- Familiar with MVC and terms such as Migrations, Database
- Amber Framework CLI already installed (Installation Instructions)
- One of the supported databases PostgreSQL, MySQL, SQLite
- Terminal console
Virtually all web applications require a form of authenticating and registering users. As a result, most web frameworks have an excessive amount of options for implementing authentication, but Amber Framework differs by providing a built-in generator for basic authentication that can be customized and extended easily providing your tools that allows you to get started quick without unnecessary complexity.
Before you start make sure you have all the prerequisites. Let’s start by first generating an application, for our example we will call our application Blogsy.
First, we generate our app by typing the following command in a terminal console.
amber new blogsy --deps
Note: The --deps will automatically install project dependencies.
Amber Commands are perform within the root directory of our project.
Next, scaffold the authentication system this will generate a list of files needed in order to enable authentication for our blog. FType the following command within the root directory of the Blogsy project.
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 authentication system migrate the database with the following command:
amber db create migrat
This will output:
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.
Run the following command
08:53:52 Watcher | Terminating app Blogsy... 08:53:52 Watcher | Compiling Blogsy... 08:53:52 Watcher | Building project Blogsy... 08:54:05 (INFO) Server | [Amber 0.6.1] serving application "Blogsy" at http://0.0.0.0:3000 08:54:05 (INFO) Server | Server started in development. 08:54:05 (INFO) Server | Startup Time 00:00:00.000596000
To see the signup page visit http://0.0.0.0:3000/signup
Amber framework provides a built-in authentication generator that takes away complexity away, allowing the developer to focus on the task rather on implementations details. The built in authentication system is simple make it easy to modify to developer needs.
- [From Zero to Deploy](https://amberframework.org/guides/getting-started/quick-start.md#zero-to-deploy) - [Amber Framework Guides](https://amberframework.org/guides/getting-started/README.md#getting-started) - [Crystal Play](https://play.crystal-lang.org/#/cr) — an online playground to run Crystal code - Get real time help [Amber Community Channel](https://gitter.im/amberframework/amber) - GitHub (help the community)[https://github.com/amberframework/amber] and star the project