Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/laravolt/auth
Laravel auth extended
https://github.com/laravolt/auth
authentication laravel laravolt package
Last synced: 3 months ago
JSON representation
Laravel auth extended
- Host: GitHub
- URL: https://github.com/laravolt/auth
- Owner: laravolt
- Created: 2015-09-28T04:23:33.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-10-28T05:10:41.000Z (over 4 years ago)
- Last Synced: 2024-11-08T09:37:50.328Z (3 months ago)
- Topics: authentication, laravel, laravolt, package
- Language: PHP
- Size: 149 KB
- Stars: 14
- Watchers: 5
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# laravolt/auth
![https://travis-ci.org/laravolt/auth](https://img.shields.io/travis/laravolt/auth.svg)
![https://coveralls.io/github/laravolt/auth](https://img.shields.io/coveralls/laravolt/auth.svg)
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/64a4da48-4cab-418e-9594-cb90d7f3e792/mini.png)](https://insight.sensiolabs.com/projects/64a4da48-4cab-418e-9594-cb90d7f3e792)Laravel authentication with some additional features:
* Activation
* Enable/disable registration
* Captcha
* Custom email template
* Functionally tested## Installation
* Run `composer require laravolt/auth`
* For Laravel 5.4 or below, add `Laravolt\Auth\ServiceProvider::class` as service providers
* Optionally, you can run `php artisan vendor:publish --provider="Laravolt\Auth\ServiceProvider" --tag="migrations"` to publish migrations files for further editing## Configuration
```php
'ui::layouts.auth',// Enable captcha (Google reCaptcha) on login form
'captcha' => false,// Column name to be checked for authentication (login)
'identifier' => 'email',// Configuration related to login process
'login' => [
'implementation' => \Laravolt\Auth\DefaultLogin::class,
],// Configuration related to registration process
'registration' => [// Enable or disable registration form
'enable' => true,// Default status for newly registered user
'status' => 'ACTIVE',// During the process, data from registration form will be passed to this class.
// You may create your own implementation by creating UserRegistrar class.
'implementation' => \Laravolt\Auth\DefaultUserRegistrar::class,
],// Configuration related to registration process
'activation' => [
// If enabled, newly registered user are not allowed to login until they click
// activation link that sent to their email.
'enable' => false,// Status for newly registered user, before activation
'status_before' => 'PENDING',// Status for newly registered user, after successfully activate their account
'status_after' => 'ACTIVE',
],// Routes configuration
'router' => [
'middleware' => ['web'],
'prefix' => 'auth',
],// Redirect configuration
'redirect' => [
// Where to redirect after successfully login
'after_login' => '/',// Where to redirect after successfully register
'after_register' => '/',// Where to redirect after successfully reset password
'after_reset_password' => '/',
],// Whether to auto load migrations or not.
// If set to false, then you must publish the migration files first before running the migrate command
'migrations' => false,
];
```## Captcha
If you enable captcha (by setting `'captcha' => true` in config file), please add following entries to `.env`:
```
NOCAPTCHA_SECRET=YOUR_RECAPTCHA_SECRET
NOCAPTCHA_SITEKEY=YOUR_RECAPTCHA_SITEKEY
```
You can obtain them from www.google.com/recaptcha/admin.## Custom Login Form
### Modify Form (View File)
Run `php artisan vendor:publish --provider="Laravolt\Auth\ServiceProvider"`.
You can modify the view located in `resources/views/vendor/auth/login.blade.php`.### Modify Logic
Create new class to handle user login that implements `Laravolt\Auth\Contracts\Login` contract.
You must implement two method related to registration:
1. `rules(Request $request)` to get validation rules.
2. `credentials(Request $request)` to check valid credentials.
optionally:
1. `authenticated(Request $request, $user)` to handle after login, it should be returned `\Illuminate\Http\Response` or `null`
1. `failed(Request $request)` to handle custom failed response## Custom Registration Form
Sometimes you need to modify registration form, e.g. add more fields, change logic, or add some validation.
There are several way you can accomplish those.### Modify Form (View File)
Run `php artisan vendor:publish --provider="Laravolt\Auth\ServiceProvider"`.
You can modify the view located in `resources/views/vendor/auth/register.blade.php`.### Modify Logic
Create new class to handle user registration that implements `Laravolt\Auth\Contracts\UserRegistrar` contract.
You must implement two method related to registration:
1. `validate($data)` to handle validation logic.
2. `register($data)` to handle user creation logic.
optionally:
1. `registered(Request $request, $user)` to handle after registration is completed, it should be returned `\Illuminate\Http\Response` or `null````php
'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6',
]
);
}/**
* Create model.
*
* @param $
*
*/
public function register(array $data)
{
// create Authenticatable model.
$user = User::create($data);// return Authenticatable model.
return $user;
}
}```
#### Modify Activation Logic
add `Laravolt\Auth\Contracts\ShouldActivate` implementation to your `registration.implementation` class by add these function to your registrar class.
1. `notify(Model $user, $token)`
2. `activate($token)`
```php
...
class CustomUserRegistrar implements UserRegistrar, ShouldActivate
{
.../**
* Notify if user to activate the user with the token provided.
*
* @param \Illuminate\Database\Eloquent\Model|Authenticatable $user
* @param string $token
* @return void
*/
public function notify(Model $user, $token)
{
//
}/**
* Activation method by the token provided.
*
* @param string $token
* @return \Illuminate\Http\Response
*/
public function activate($token)
{
$token = \DB::table('users_activation')->whereToken($token)->first();if (! $token) {
abort(404);
}\User::where('id', $token->user_id)->update(['status' => config('laravolt.auth.activation.status_after')]);
\DB::table('users_activation')->where('user_id', $token->user_id)->delete();return redirect()->route('auth::login')->withSuccess(trans('auth::auth.activation_success'));
}
}
```After that, you must update auth config (located in `config/laravolt/auth.php`, if not, just run `php artisan vendor:publish`).
```php
...
'registration' => [
// During the process, data from registration form will be passed to this class.
// You may create your own implementation by creating UserRegistrar class.
'implementation' => \App\Registration\CustomUserRegistrar::class,
],...
```## LDAP
### Environment Variables
```
LDAP_HOSTS=ldap.forumsys.com
LDAP_BASE_DN='dc=example,dc=com'
LDAP_PORT=389
LDAP_USERNAME='cn=read-only-admin,dc=example,dc=com'
LDAP_PASSWORD='password'
LDAP_USE_SSL=false
LDAP_USE_TLS=false
```