Skip to content

moeen-basra/laravel-passport-otp-grant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Passport OTP Grant

This is a small package for laravel passport otp authentication easy to integrate.

How to

Following are a few steps you need to follow to make it work.

  1. Install this package using the composer
composer require moeen-basra/laravel-passport-otp-grant
  1. Implement the MoeenBasra\OneTimePinGrant\Interfaces\OneTimePinGrantUserInterface on your desired provider model.
use Illuminate\Foundation\Auth\User as BaseUser;
use MoeenBasra\OneTimePinGrant\Interfaces\OneTimePinGrantUserInterface;

class User extends BaseUser implements OneTimePinGrantUserInterface
{
    //...
    
    /**
     * {@inheritDoc}
     */
    public function findAndValidateForPassportOtpGrant(string $mobile_number, string $code)
    {
        if (!OneTimePin::validate($mobile_number, $code)) {
            return null;
        }
        
        return static::firstOrCreate([
            'mobile_number' => $mobile_number
        ]);
    }
}
  1. This step is optional, add the service provider under the providers array in config/app.php.
   'providers' => [
        //...
        MoeenBasra\OneTimePinGrant\OneTimePinGrantServiceProvider::class,
    ]

That's it now you can call the otp login using same params you use for other passport end points

curl --location --request POST 'https://api.example.com/oauth/token' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--form 'username="mobile_number"' \
--form 'password="code"' \
--form 'grant_type="otp"' \
--form 'client_id="client_id"' \
--form 'client_secret="client_secret"' \
--form 'scope="*"'

More

You can check out the Laravel Passport official documentation for more details.

Contributions

You are welcome, you can create a pull request. You will be credited for any contribution.

Issues

If you are facing any problem feel free to report here.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages