This Ruby on Rails starter kit demonstrates how to implement API key authentication with Unkey. Learn to protect public and private routes easily and authenticate users quickly.
Note: This application uses the Unkey API directly since there is currently no official SDK available for Ruby on Rails, allowing for a hands-on approach to API integration.
This project is built using Ruby 3.2.2 and Rails 7.2.1. Check the Rails documentation for more details on version compatibility.
- Go to settings.root-keys and click on the "Create New Root Key" button.
- Enter a name for the key.
- Select the following workspace permissions:
create_key
,read_key
,encrypt_key
anddecrypt_key
. - Click "Create".
- Go to apis and click on the "Create New API" button.
- Give it a name.
- Click "Create".
- Click "Create Key" in the top right corner.
- Feel the form with any key information you want or leave it empty.
- Click "Create"
- Copy the key and save it somewhere safe.
-
Clone the repository to your local machine:
git clone git@github.com:unrenamed/unkey-rails cd unkey-rails
-
Create a
.env
file in the root directory and populate it with the following environment variables:UNKEY_API_ID=your-unkey-api-id
Ensure you replace
your-unkey-api-id
with your actual Unkey credentials. -
Start the server:
rails server
The server will start and listen on the
3000
port. -
Test the public route as a guest:
curl http://localhost:3000/public
-
Test the public route as an authorized user by passing the API key in the header:
curl http://localhost:3000/public -H "Authorization: Bearer <YOUR_API_KEY>"
-
Test the protected route, which requires valid authorization:
curl http://localhost:3000/protected -H "Authorization: Bearer <YOUR_API_KEY>"