Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mpociot/laravel-face-auth
Laravel Face authentication
https://github.com/mpociot/laravel-face-auth
laravel microsoft-cognitive-services
Last synced: 11 days ago
JSON representation
Laravel Face authentication
- Host: GitHub
- URL: https://github.com/mpociot/laravel-face-auth
- Owner: mpociot
- License: mit
- Created: 2017-03-13T00:08:04.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-01T07:59:29.000Z (almost 2 years ago)
- Last Synced: 2024-10-13T22:30:55.214Z (24 days ago)
- Topics: laravel, microsoft-cognitive-services
- Language: PHP
- Size: 12.7 KB
- Stars: 159
- Watchers: 10
- Forks: 29
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Laravel Face authentication
This package uses Microsoft's cognitive API to identify faces instead of passwords for your Laravel application.
# Disclaimer
> Any kind of Face Recognition, using the camera of the device as a form of Authentication is flawed.
> You only need to hold a good photo in front of the camera to by pass it.
> Using this for authentication is like shooting in your own foot and contributing for a more insecure web.Please **do not** use face recognition as an alternative for password authentication in a production system!
## Installation
You can install the package via Composer:
``` bash
$ composer require mpociot/laravel-face-auth
```Add the service provider to your `config/app.php`:
``` php
Mpociot\FaceAuth\FaceAuthServiceProvider::class,
```In your `config/auth.php`, change the auth driver to `faceauth`:
```php
'providers' => [
'users' => [
'driver' => 'faceauth',
'model' => App\User::class,
],
]
```Publish the configuration:
``` bash
$ php artisan vendor:publish --provider="Mpociot\FaceAuth\FaceAuthServiceProvider"
```
Edit the newly published `config/faceauth.php` file and enter your [Face API key](https://www.microsoft.com/cognitive-services/en-us/face-api).## Usage and authorization
The face authentication works, by using a reference image of your user and matching it against a uploaded image upon login.
So this pretty much is the same flow as comparing two password hashes.When you register your users, you need to make sure that you store a photo of the users face - this is basically his password.
In order for this package, to find the user photo, your `User` model needs to implement the `FaceAuthenticatable` interface.
This interface only has one single public method `getFaceAuthPhoto()`. This method needs to return the content of the user photo.
Example:
```php
class User extends Authenticatable implements FaceAuthenticatable
{public function getFaceAuthPhoto()
{
return File::get(storage_path('facces') . $this->id . '.png');
}
}
```Your login form now needs a `photo` field (the name can be configured) - this field should contain a base64 representation of the image, the user uses to log in.
> If you want a simple way to capture the user image from the webcam, take a look at the [vue-webcam](https://github.com/smronju/vue-webcam) Vue.js component.
## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
## Credits
- [Marcel Pociot](https://github.com/mpociot)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.