Generate Api Key Php Laravel
- Configuration
- Generating Tokens
Introduction
By default, Laravel ships with a simple solution to API authentication via a random token assigned to each user of your application. In your config/auth.php
configuration file, an api
guard is already defined and utilizes a token
driver. This driver is responsible for inspecting the API token on the incoming request and verifying that it matches the user's assigned token in the database.
- May 17, 2019 Laravel Keyable is a package by Liran Cohen that enables you to add API keys to any model and associate incoming requests with their respective model. You can also use Policies to authorize requests. This package works by adding a Keyable trait to a given model (i.e., Company model) that creates a polymorphic association between a model and an.
- Craftable is a Laravel-based open-source toolkit for building administration interfaces. It ships with powerful CRUD generator to speed up the development of your CMS, CRM or other back-office system. We believe that minimalism ensures higher flexibility when executing your ideas. That's why Craftable, by default, ships only with two ready-to.
- See full list on rapidapi.com.
Laravel Version: 5.4.33 PHP Version: 7.0.22-0ubuntu0.16.04.1 Database Driver & Version: MySQL/MariaDB 10.0.31 Description: Running php artisan key:generate in a Laravel project where the.env file does not contain an APPKEY= line result. Aug 24, 2017 Laravel Version: 5.4.33 PHP Version: 7.0.22-0ubuntu0.16.04.1 Database Driver & Version: MySQL/MariaDB 10.0.31 Description: Running php artisan key:generate in a Laravel project where the.env file does not contain an APPKEY= line result.
Note: While Laravel ships with a simple, token based authentication guard, we strongly recommend you consider using Laravel Passport for robust, production applications that offer API authentication.
Configuration
Database Preparation
Before using the token
driver, you will need to create a migration which adds an api_token
column to your users
table:
Once the migration has been created, run the migrate
Artisan command.
{tip} If you choose to use a different column name, be sure to update your API's storage_key
configuration option within the config/auth.php
configuration file.
Generating Tokens
Once the api_token
column has been added to your users
table, you are ready to assign random API tokens to each user that registers with your application. You should assign these tokens when a User
model is created for the user during registration. When using the authentication scaffolding provided by the make:auth
Artisan command, this may be done in the create
method of the RegisterController
:
Hashing Tokens
In the examples above, API tokens are stored in your database as plain-text. If you would like to hash your API tokens using SHA-256 hashing, you may set the hash
option of your api
guard configuration to true
. The api
guard is defined in your config/auth.php
configuration file:
Generating Hashed Tokens
When using hashed API tokens, you should not generate your API tokens during user registration. Instead, you will need to implement your own API token management page within your application. This page should allow users to initialize and refresh their API token. When a user makes a request to initialize or refresh their token, you should store a hashed copy of the token in the database, and return the plain-text copy of token to the view / frontend client for one-time display.
For example, a controller method that initializes / refreshes the token for a given user and returns the plain-text token as a JSON response might look like the following:
{tip} Since the API tokens in the example above have sufficient entropy, it is impractical to create 'rainbow tables' to lookup the original value of the hashed token. Therefore, slow hashing methods such as bcrypt
are unnecessary.
Protecting Routes
Laravel includes an authentication guard that will automatically validate API tokens on incoming requests. You only need to specify the auth:api
middleware on any route that requires a valid access token:
Passing Tokens In Requests
There are several ways of passing the API token to your application. We'll discuss each of these approaches while using the Guzzle HTTP library to demonstrate their usage. You may choose any of these approaches based on the needs of your application.
Query String
Your application's API consumers may specify their token as an api_token
query string value:
Request Payload
Your application's API consumers may include their API token in the request's form parameters as an api_token
:
Bearer Token
Generate Api Key Php Laravel Tutorial
Your application's API consumers may provide their API token as a Bearer
token in the Authorization
header of the request: