1. Go to this page and download the library: Download laragear/email-login library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
laragear / email-login example snippets
use Illuminate\Routing\Route;
use Laragear\EmailLogin\Http\Routes as EmailLoginRoutes;
Route::view('welcome');
// Register the default Mail Login routes
EmailLoginRoutes::register();
> use Laragear\EmailLogin\Http\Routes as EmailLoginRoutes;
>
> EmailLoginRoutes::register(
> send: '/send-email-here',
> login: '/login-from-email-here',
> controller: 'App/Http/Controllers/MyEmailLoginController',
> );
>
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
$email->validate([
'email' => '
if ($email->send()) {
session()->flash('message', 'Email sent successfully!');
} else {
throw ValidationException::withMessages([
'email' => 'The user with the email does not exist'
]);
}
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
$email->validate([
'username' => '
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
$email->validate([
// ...
]);
return $email->withCredentials(['username', 'mail'])->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
$email->validate([
'email' => '
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withExpiration(10)->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withRemember('remember_me')->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withRemember($email->boolean('remember_me'))->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withGuard('admin')->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withRoute('auth.email.login', ['is_cool' => true])->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withParameters(['is_cool' => true])->sendAndBack();
});
use App\Mails\MyLoginMailable;
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withMailable(MyLoginMailable::class)->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
use Laragear\EmailLogin\Mails\LoginEmail;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withMailable(function (LoginEmail $mailable) {
$mailable->view('my-login-email', ['theme' => 'blue']);
$mailable->subject('Login to this awesome app');
})->sendAndBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
return $email->withThrottle(30)->sendAndReturnBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
Route::post('/auth/email/send', function (EmailLoginRequest $email) {
$key = strtolower($email->input('email'));
return $email->withThrottle(30, 'redis', $key)->sendAndReturnBack();
});
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\EmailLoginRequest;
use Laragear\EmailLogin\Http\Requests\LoginByEmailRequest;
// Send the email and save the metadata internally.
Route::post('/auth/email/send', function (EmailLoginRequest $request) {
return $request
->withMetadata(['is_cool' => true])
->sendAndReturnBack();
});
// Show the login form with the metadata.
Route::get('/auth/email/login', function (LoginByEmailRequest $request) {
return view('laragear::email-login.web.login', [
'is_cool' => $request->metadata('is_cool')
]);
});
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\Http\Requests\LoginByEmailRequest;
Route::middleware('guest')->group(function () {
// Show the form to log in.
Route::get('/auth/login/mail', function (LoginByEmailRequest $request) {
return view('laragear::email-login.web.login')
})->name('login.mail');
// User logged in automatically, show him the dashboard.
Route::post('/auth/login/mail', function (LoginByEmailRequest $request) {
return $request->toIntended()
});
})
use Laragear\EmailLogin\Http\Requests\LoginByEmailRequest;
use Illuminate\Support\Facades\Route;
Route::get('auth/login/mail', function (LoginByEmailRequest $request) {
return view('laragear::email-login.web.login', [
'is_cool' => $request->metadata('is_cool');
]);
});
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\EmailLoginBroker;use Laragear\EmailLogin\Mails\LoginEmail;
Route::post('/send-login-email', function (Request $request, EmailLoginBroker $broker) {
$request->validate([
'email' => 'mail with the url to the user.
LoginEmail::make($user, $url)->to($request->email)->send();
}
session()->flash('message', 'Login email sent successfully!');
return back();
});
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;use Illuminate\Support\Facades\Route;
use Laragear\EmailLogin\EmailLoginBroker;use Laragear\EmailLogin\Mails\LoginEmail;
Route::get('/login-by-email', function (Request $request, EmailLoginBroker $broker) {
// If the intent exists, show him the login form.
if ($broker->get($request->query('token'))) {
return view('my-email-login-view');
}
// If it doesn't exist, redirect the user back to the initial login.
return redirect('send-login-email');
});
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use Laragear\EmailLogin\EmailLoginBroker;
Route::post('/login-by-email', function (Request $request, EmailLoginBroker $broker) {
$intent = $broker->pull($request->query('token'));
// If the intent doesn't exist, bail out.
if (!$intent) {
return redirect('send-login-email');
}
// Log in the user using the intent data.
Auth::guard($intent->guard)->loginUsingId($intent->id, $intent->remember);
// Regenerate the session for security.
$request->session()->regenerate();
return redirect('/dashboard');
});
use Illuminate\Support\Str;
use Laragear\EmailLogin\EmailLoginBroker;
use Laragear\EmailLogin\EmailLoginIntent;
public function register()
{
EmailLoginBroker::$tokenGenerator = function (EmailLoginIntent $intent) {
return Str::random(128);
};
}
use App\Models\User;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Contracts\Auth\StatefulGuard;
use Illuminate\Validation\ValidationException;
use Laragear\EmailLogin\Http\Requests\LoginByEmailRequest;
class MyLoginRequest extends LoginByEmailRequest
{
/**
* Proceed to log in the user after a successful form submission.
*/
protected function login(StatefulGuard $guard, mixed $id, bool $remember): void
{
$user = User::whereNull('banned_at')->find($id);
if (!$user) {
throw ValidationException::withMessages([
'email' => 'The user for this email has been banned.'
]);
}
$guard->login($user, $remember);
}
}