implement user email verification system in laravel passport
This commit is contained in:
parent
9e38566c22
commit
a65a7ecf36
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\API\Auth\Mail;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class SendMailNotificationController extends Controller
|
||||||
|
{
|
||||||
|
public function sendNotification(Request $request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$request->user()->SendEmailVerificationNotification();
|
||||||
|
return response()->json([
|
||||||
|
'status' => 1,
|
||||||
|
'message' => 'Please check your email for the verification link.'
|
||||||
|
]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return response()->json([
|
||||||
|
'status' => 0,
|
||||||
|
'error' => 'We encountered an issue while sending the verification email. Please try again later.',
|
||||||
|
'message' => $e->getMessage(),
|
||||||
|
], 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\API\Auth\Mail;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Foundation\Auth\EmailVerificationRequest;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class VerifyMailController extends Controller
|
||||||
|
{
|
||||||
|
public function verifyMail(EmailVerificationRequest $request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$request->fulfill();
|
||||||
|
return response()->json([
|
||||||
|
'status' => 1,
|
||||||
|
'message' => 'Your email has been successfully verified. Thank you!',
|
||||||
|
]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return response()->json([
|
||||||
|
'status' => 0,
|
||||||
|
'error' => 'Your verification link was found, but something went wrong during the confirmation process. Please try again or request a new verification email.',
|
||||||
|
'message' => $e->getMessage(),
|
||||||
|
], 500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
50
API/Passport/app/Mail/AuthenticationMail.php
Normal file
50
API/Passport/app/Mail/AuthenticationMail.php
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Mail;
|
||||||
|
|
||||||
|
use Illuminate\Bus\Queueable;
|
||||||
|
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||||
|
use Illuminate\Mail\Mailable;
|
||||||
|
use Illuminate\Mail\Mailables\Content;
|
||||||
|
use Illuminate\Mail\Mailables\Envelope;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
|
class AuthenticationMail extends Mailable
|
||||||
|
{
|
||||||
|
use Queueable, SerializesModels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new message instance.
|
||||||
|
*/
|
||||||
|
public function __construct() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the message envelope.
|
||||||
|
*/
|
||||||
|
public function envelope(): Envelope
|
||||||
|
{
|
||||||
|
return new Envelope(
|
||||||
|
subject: 'Authentication Mail',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the message content definition.
|
||||||
|
*/
|
||||||
|
public function content(): Content
|
||||||
|
{
|
||||||
|
return new Content(
|
||||||
|
view: 'email',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the attachments for the message.
|
||||||
|
*
|
||||||
|
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
|
||||||
|
*/
|
||||||
|
public function attachments(): array
|
||||||
|
{
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -7,8 +7,9 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|||||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
use Illuminate\Notifications\Notifiable;
|
use Illuminate\Notifications\Notifiable;
|
||||||
use Laravel\Passport\HasApiTokens;
|
use Laravel\Passport\HasApiTokens;
|
||||||
|
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||||
|
|
||||||
class User extends Authenticatable
|
class User extends Authenticatable implements MustVerifyEmail
|
||||||
{
|
{
|
||||||
/** @use HasFactory<\Database\Factories\UserFactory> */
|
/** @use HasFactory<\Database\Factories\UserFactory> */
|
||||||
use HasFactory, Notifiable, HasApiTokens;
|
use HasFactory, Notifiable, HasApiTokens;
|
||||||
|
|||||||
@ -12,7 +12,8 @@
|
|||||||
"php": "^8.2",
|
"php": "^8.2",
|
||||||
"laravel/framework": "^12.0",
|
"laravel/framework": "^12.0",
|
||||||
"laravel/passport": "^12.0",
|
"laravel/passport": "^12.0",
|
||||||
"laravel/tinker": "^2.10.1"
|
"laravel/tinker": "^2.10.1",
|
||||||
|
"mailersend/laravel-driver": "^2.9"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fakerphp/faker": "^1.23",
|
"fakerphp/faker": "^1.23",
|
||||||
|
|||||||
723
API/Passport/composer.lock
generated
723
API/Passport/composer.lock
generated
@ -4,8 +4,75 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "de13070cbd10e460d9aef18fe9dff319",
|
"content-hash": "a9acec216d507964b3aff6d9c9055a91",
|
||||||
"packages": [
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "beberlei/assert",
|
||||||
|
"version": "v3.3.3",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/beberlei/assert.git",
|
||||||
|
"reference": "b5fd8eacd8915a1b627b8bfc027803f1939734dd"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/beberlei/assert/zipball/b5fd8eacd8915a1b627b8bfc027803f1939734dd",
|
||||||
|
"reference": "b5fd8eacd8915a1b627b8bfc027803f1939734dd",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-ctype": "*",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"ext-simplexml": "*",
|
||||||
|
"php": "^7.1 || ^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friendsofphp/php-cs-fixer": "*",
|
||||||
|
"phpstan/phpstan": "*",
|
||||||
|
"phpunit/phpunit": ">=6.0.0",
|
||||||
|
"yoast/phpunit-polyfills": "^0.1.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"lib/Assert/functions.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Assert\\": "lib/Assert"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-2-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Benjamin Eberlei",
|
||||||
|
"email": "kontakt@beberlei.de",
|
||||||
|
"role": "Lead Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Richard Quadling",
|
||||||
|
"email": "rquadling@gmail.com",
|
||||||
|
"role": "Collaborator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Thin assertion library for input validation in business models.",
|
||||||
|
"keywords": [
|
||||||
|
"assert",
|
||||||
|
"assertion",
|
||||||
|
"validation"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/beberlei/assert/issues",
|
||||||
|
"source": "https://github.com/beberlei/assert/tree/v3.3.3"
|
||||||
|
},
|
||||||
|
"time": "2024-07-15T13:18:35+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "brick/math",
|
"name": "brick/math",
|
||||||
"version": "0.12.3",
|
"version": "0.12.3",
|
||||||
@ -135,6 +202,72 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-02-09T16:56:22+00:00"
|
"time": "2024-02-09T16:56:22+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "clue/stream-filter",
|
||||||
|
"version": "v1.7.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/clue/stream-filter.git",
|
||||||
|
"reference": "049509fef80032cb3f051595029ab75b49a3c2f7"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7",
|
||||||
|
"reference": "049509fef80032cb3f051595029ab75b49a3c2f7",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/functions_include.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Clue\\StreamFilter\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Christian Lück",
|
||||||
|
"email": "christian@clue.engineering"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A simple and modern approach to stream filtering in PHP",
|
||||||
|
"homepage": "https://github.com/clue/stream-filter",
|
||||||
|
"keywords": [
|
||||||
|
"bucket brigade",
|
||||||
|
"callback",
|
||||||
|
"filter",
|
||||||
|
"php_user_filter",
|
||||||
|
"stream",
|
||||||
|
"stream_filter_append",
|
||||||
|
"stream_filter_register"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/clue/stream-filter/issues",
|
||||||
|
"source": "https://github.com/clue/stream-filter/tree/v1.7.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://clue.engineering/support",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/clue",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2023-12-20T15:40:13+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "defuse/php-encryption",
|
"name": "defuse/php-encryption",
|
||||||
"version": "v2.4.0",
|
"version": "v2.4.0",
|
||||||
@ -2491,6 +2624,142 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-12-08T08:18:47+00:00"
|
"time": "2024-12-08T08:18:47+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "mailersend/laravel-driver",
|
||||||
|
"version": "v2.9.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/mailersend/mailersend-laravel-driver.git",
|
||||||
|
"reference": "87fd5ab76808bbaac9221be0d306baef13e98725"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/mailersend/mailersend-laravel-driver/zipball/87fd5ab76808bbaac9221be0d306baef13e98725",
|
||||||
|
"reference": "87fd5ab76808bbaac9221be0d306baef13e98725",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"illuminate/support": "^9.0 || ^10.0 || ^11.0 || ^12.0",
|
||||||
|
"mailersend/mailersend": "^0.31.0",
|
||||||
|
"nyholm/psr7": "^1.5",
|
||||||
|
"php": ">=8.0",
|
||||||
|
"php-http/guzzle7-adapter": "^1.0",
|
||||||
|
"symfony/mailer": "^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"orchestra/testbench": "^7.0 || ^9.0 || ^10.0",
|
||||||
|
"phpunit/phpunit": "^9.0 || ^10.5 || ^12.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"laravel": {
|
||||||
|
"aliases": {
|
||||||
|
"LaravelDriver": "MailerSend\\LaravelDriver\\LaravelDriverFacade"
|
||||||
|
},
|
||||||
|
"providers": [
|
||||||
|
"MailerSend\\LaravelDriver\\LaravelDriverServiceProvider"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"MailerSend\\LaravelDriver\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Tautvydas Tijūnaitis",
|
||||||
|
"email": "tautvydas@mailersend.com",
|
||||||
|
"homepage": "https://mailersend.com",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "MailerSend Laravel Driver",
|
||||||
|
"homepage": "https://github.com/mailersend/mailersend-laravel-driver",
|
||||||
|
"keywords": [
|
||||||
|
"email",
|
||||||
|
"laravel-driver",
|
||||||
|
"mailersend",
|
||||||
|
"transactional"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/mailersend/mailersend-laravel-driver/issues",
|
||||||
|
"source": "https://github.com/mailersend/mailersend-laravel-driver/tree/v2.9.1"
|
||||||
|
},
|
||||||
|
"time": "2025-04-09T09:33:07+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mailersend/mailersend",
|
||||||
|
"version": "v0.31.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/mailersend/mailersend-php.git",
|
||||||
|
"reference": "513ff83ee768526055ad52987cde401ea7218c67"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/mailersend/mailersend-php/zipball/513ff83ee768526055ad52987cde401ea7218c67",
|
||||||
|
"reference": "513ff83ee768526055ad52987cde401ea7218c67",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"beberlei/assert": "^3.2",
|
||||||
|
"ext-json": "*",
|
||||||
|
"illuminate/collections": "^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0",
|
||||||
|
"php": "^7.4|^8.0",
|
||||||
|
"php-http/client-common": "^2.2",
|
||||||
|
"php-http/discovery": "^1.9",
|
||||||
|
"php-http/httplug": "^2.1",
|
||||||
|
"psr/http-client-implementation": "^1.0",
|
||||||
|
"psr/http-message": "^1.0 || ^2.0",
|
||||||
|
"symfony/options-resolver": "^4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friendsofphp/php-cs-fixer": "^3.4.0",
|
||||||
|
"guzzlehttp/psr7": "^2.0.0",
|
||||||
|
"http-interop/http-factory-guzzle": "^1.0",
|
||||||
|
"mockery/mockery": "^1.0.0",
|
||||||
|
"php-http/guzzle7-adapter": "^0.1 || ^1.0",
|
||||||
|
"php-http/message": "^1.0",
|
||||||
|
"php-http/mock-client": "^1.0",
|
||||||
|
"phpunit/phpunit": "^7.5.15 || ^8.4 || ^9.0 || ^12.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"MailerSend\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Tautvydas Tijūnaitis",
|
||||||
|
"email": "tautvydas@mailersend.com",
|
||||||
|
"homepage": "https://mailersend.com",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "MailerSend PHP SDK",
|
||||||
|
"homepage": "https://github.com/mailersend/mailersend-php",
|
||||||
|
"keywords": [
|
||||||
|
"email",
|
||||||
|
"mailersend",
|
||||||
|
"transactional"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/mailersend/mailersend-php/issues",
|
||||||
|
"source": "https://github.com/mailersend/mailersend-php/tree/v0.31.0"
|
||||||
|
},
|
||||||
|
"time": "2025-04-03T12:16:11+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "monolog/monolog",
|
"name": "monolog/monolog",
|
||||||
"version": "3.9.0",
|
"version": "3.9.0",
|
||||||
@ -3188,6 +3457,391 @@
|
|||||||
},
|
},
|
||||||
"time": "2020-10-15T08:29:30+00:00"
|
"time": "2020-10-15T08:29:30+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "php-http/client-common",
|
||||||
|
"version": "2.7.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-http/client-common.git",
|
||||||
|
"reference": "0cfe9858ab9d3b213041b947c881d5b19ceeca46"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-http/client-common/zipball/0cfe9858ab9d3b213041b947c881d5b19ceeca46",
|
||||||
|
"reference": "0cfe9858ab9d3b213041b947c881d5b19ceeca46",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.1 || ^8.0",
|
||||||
|
"php-http/httplug": "^2.0",
|
||||||
|
"php-http/message": "^1.6",
|
||||||
|
"psr/http-client": "^1.0",
|
||||||
|
"psr/http-factory": "^1.0",
|
||||||
|
"psr/http-message": "^1.0 || ^2.0",
|
||||||
|
"symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0 || ^7.0",
|
||||||
|
"symfony/polyfill-php80": "^1.17"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/instantiator": "^1.1",
|
||||||
|
"guzzlehttp/psr7": "^1.4",
|
||||||
|
"nyholm/psr7": "^1.2",
|
||||||
|
"phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
|
||||||
|
"phpspec/prophecy": "^1.10.2",
|
||||||
|
"phpunit/phpunit": "^7.5.20 || ^8.5.33 || ^9.6.7"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-json": "To detect JSON responses with the ContentTypePlugin",
|
||||||
|
"ext-libxml": "To detect XML responses with the ContentTypePlugin",
|
||||||
|
"php-http/cache-plugin": "PSR-6 Cache plugin",
|
||||||
|
"php-http/logger-plugin": "PSR-3 Logger plugin",
|
||||||
|
"php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Http\\Client\\Common\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Márk Sági-Kazár",
|
||||||
|
"email": "mark.sagikazar@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Common HTTP Client implementations and tools for HTTPlug",
|
||||||
|
"homepage": "http://httplug.io",
|
||||||
|
"keywords": [
|
||||||
|
"client",
|
||||||
|
"common",
|
||||||
|
"http",
|
||||||
|
"httplug"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-http/client-common/issues",
|
||||||
|
"source": "https://github.com/php-http/client-common/tree/2.7.2"
|
||||||
|
},
|
||||||
|
"time": "2024-09-24T06:21:48+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "php-http/discovery",
|
||||||
|
"version": "1.20.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-http/discovery.git",
|
||||||
|
"reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d",
|
||||||
|
"reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer-plugin-api": "^1.0|^2.0",
|
||||||
|
"php": "^7.1 || ^8.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"nyholm/psr7": "<1.0",
|
||||||
|
"zendframework/zend-diactoros": "*"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"php-http/async-client-implementation": "*",
|
||||||
|
"php-http/client-implementation": "*",
|
||||||
|
"psr/http-client-implementation": "*",
|
||||||
|
"psr/http-factory-implementation": "*",
|
||||||
|
"psr/http-message-implementation": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"composer/composer": "^1.0.2|^2.0",
|
||||||
|
"graham-campbell/phpspec-skip-example-extension": "^5.0",
|
||||||
|
"php-http/httplug": "^1.0 || ^2.0",
|
||||||
|
"php-http/message-factory": "^1.0",
|
||||||
|
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
|
||||||
|
"sebastian/comparator": "^3.0.5 || ^4.0.8",
|
||||||
|
"symfony/phpunit-bridge": "^6.4.4 || ^7.0.1"
|
||||||
|
},
|
||||||
|
"type": "composer-plugin",
|
||||||
|
"extra": {
|
||||||
|
"class": "Http\\Discovery\\Composer\\Plugin",
|
||||||
|
"plugin-optional": true
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Http\\Discovery\\": "src/"
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"src/Composer/Plugin.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Márk Sági-Kazár",
|
||||||
|
"email": "mark.sagikazar@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations",
|
||||||
|
"homepage": "http://php-http.org",
|
||||||
|
"keywords": [
|
||||||
|
"adapter",
|
||||||
|
"client",
|
||||||
|
"discovery",
|
||||||
|
"factory",
|
||||||
|
"http",
|
||||||
|
"message",
|
||||||
|
"psr17",
|
||||||
|
"psr7"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-http/discovery/issues",
|
||||||
|
"source": "https://github.com/php-http/discovery/tree/1.20.0"
|
||||||
|
},
|
||||||
|
"time": "2024-10-02T11:20:13+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "php-http/guzzle7-adapter",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-http/guzzle7-adapter.git",
|
||||||
|
"reference": "03a415fde709c2f25539790fecf4d9a31bc3d0eb"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-http/guzzle7-adapter/zipball/03a415fde709c2f25539790fecf4d9a31bc3d0eb",
|
||||||
|
"reference": "03a415fde709c2f25539790fecf4d9a31bc3d0eb",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"guzzlehttp/guzzle": "^7.0",
|
||||||
|
"php": "^7.3 | ^8.0",
|
||||||
|
"php-http/httplug": "^2.0",
|
||||||
|
"psr/http-client": "^1.0"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"php-http/async-client-implementation": "1.0",
|
||||||
|
"php-http/client-implementation": "1.0",
|
||||||
|
"psr/http-client-implementation": "1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"php-http/client-integration-tests": "^3.0",
|
||||||
|
"php-http/message-factory": "^1.1",
|
||||||
|
"phpspec/prophecy-phpunit": "^2.0",
|
||||||
|
"phpunit/phpunit": "^8.0|^9.3"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Http\\Adapter\\Guzzle7\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Tobias Nyholm",
|
||||||
|
"email": "tobias.nyholm@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Guzzle 7 HTTP Adapter",
|
||||||
|
"homepage": "http://httplug.io",
|
||||||
|
"keywords": [
|
||||||
|
"Guzzle",
|
||||||
|
"http"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-http/guzzle7-adapter/issues",
|
||||||
|
"source": "https://github.com/php-http/guzzle7-adapter/tree/1.1.0"
|
||||||
|
},
|
||||||
|
"time": "2024-11-26T11:14:36+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "php-http/httplug",
|
||||||
|
"version": "2.4.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-http/httplug.git",
|
||||||
|
"reference": "5cad731844891a4c282f3f3e1b582c46839d22f4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-http/httplug/zipball/5cad731844891a4c282f3f3e1b582c46839d22f4",
|
||||||
|
"reference": "5cad731844891a4c282f3f3e1b582c46839d22f4",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.1 || ^8.0",
|
||||||
|
"php-http/promise": "^1.1",
|
||||||
|
"psr/http-client": "^1.0",
|
||||||
|
"psr/http-message": "^1.0 || ^2.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0",
|
||||||
|
"phpspec/phpspec": "^5.1 || ^6.0 || ^7.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Http\\Client\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Eric GELOEN",
|
||||||
|
"email": "geloen.eric@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Márk Sági-Kazár",
|
||||||
|
"email": "mark.sagikazar@gmail.com",
|
||||||
|
"homepage": "https://sagikazarmark.hu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "HTTPlug, the HTTP client abstraction for PHP",
|
||||||
|
"homepage": "http://httplug.io",
|
||||||
|
"keywords": [
|
||||||
|
"client",
|
||||||
|
"http"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-http/httplug/issues",
|
||||||
|
"source": "https://github.com/php-http/httplug/tree/2.4.1"
|
||||||
|
},
|
||||||
|
"time": "2024-09-23T11:39:58+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "php-http/message",
|
||||||
|
"version": "1.16.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-http/message.git",
|
||||||
|
"reference": "06dd5e8562f84e641bf929bfe699ee0f5ce8080a"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-http/message/zipball/06dd5e8562f84e641bf929bfe699ee0f5ce8080a",
|
||||||
|
"reference": "06dd5e8562f84e641bf929bfe699ee0f5ce8080a",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"clue/stream-filter": "^1.5",
|
||||||
|
"php": "^7.2 || ^8.0",
|
||||||
|
"psr/http-message": "^1.1 || ^2.0"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"php-http/message-factory-implementation": "1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ergebnis/composer-normalize": "^2.6",
|
||||||
|
"ext-zlib": "*",
|
||||||
|
"guzzlehttp/psr7": "^1.0 || ^2.0",
|
||||||
|
"laminas/laminas-diactoros": "^2.0 || ^3.0",
|
||||||
|
"php-http/message-factory": "^1.0.2",
|
||||||
|
"phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
|
||||||
|
"slim/slim": "^3.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-zlib": "Used with compressor/decompressor streams",
|
||||||
|
"guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
|
||||||
|
"laminas/laminas-diactoros": "Used with Diactoros Factories",
|
||||||
|
"slim/slim": "Used with Slim Framework PSR-7 implementation"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/filters.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Http\\Message\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Márk Sági-Kazár",
|
||||||
|
"email": "mark.sagikazar@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "HTTP Message related tools",
|
||||||
|
"homepage": "http://php-http.org",
|
||||||
|
"keywords": [
|
||||||
|
"http",
|
||||||
|
"message",
|
||||||
|
"psr-7"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-http/message/issues",
|
||||||
|
"source": "https://github.com/php-http/message/tree/1.16.2"
|
||||||
|
},
|
||||||
|
"time": "2024-10-02T11:34:13+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "php-http/promise",
|
||||||
|
"version": "1.3.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-http/promise.git",
|
||||||
|
"reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
|
||||||
|
"reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.1 || ^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3",
|
||||||
|
"phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Http\\Promise\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Joel Wurtz",
|
||||||
|
"email": "joel.wurtz@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Márk Sági-Kazár",
|
||||||
|
"email": "mark.sagikazar@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Promise used for asynchronous HTTP requests",
|
||||||
|
"homepage": "http://httplug.io",
|
||||||
|
"keywords": [
|
||||||
|
"promise"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/php-http/promise/issues",
|
||||||
|
"source": "https://github.com/php-http/promise/tree/1.3.1"
|
||||||
|
},
|
||||||
|
"time": "2024-03-15T13:55:21+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "phpoption/phpoption",
|
"name": "phpoption/phpoption",
|
||||||
"version": "1.9.3",
|
"version": "1.9.3",
|
||||||
@ -5026,6 +5680,73 @@
|
|||||||
],
|
],
|
||||||
"time": "2025-02-19T08:51:20+00:00"
|
"time": "2025-02-19T08:51:20+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/options-resolver",
|
||||||
|
"version": "v7.2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/options-resolver.git",
|
||||||
|
"reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
|
||||||
|
"reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.2",
|
||||||
|
"symfony/deprecation-contracts": "^2.5|^3"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\OptionsResolver\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Provides an improved replacement for the array_replace PHP function",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"config",
|
||||||
|
"configuration",
|
||||||
|
"options"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/options-resolver/tree/v7.2.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2024-11-20T11:17:29+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
"version": "v1.31.0",
|
"version": "v1.31.0",
|
||||||
|
|||||||
@ -14,7 +14,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'default' => env('MAIL_MAILER', 'log'),
|
'default' => env('MAIL_MAILER', 'mailersend'),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -97,6 +97,9 @@ return [
|
|||||||
'retry_after' => 60,
|
'retry_after' => 60,
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'mailersend' => [
|
||||||
|
'transport' => 'mailersend',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -6,6 +6,8 @@ use App\Http\Controllers\API\Auth\LoginController;
|
|||||||
use App\Http\Controllers\API\Auth\LogoutController;
|
use App\Http\Controllers\API\Auth\LogoutController;
|
||||||
use App\Http\Controllers\API\Auth\RegisterController;
|
use App\Http\Controllers\API\Auth\RegisterController;
|
||||||
use App\Http\Controllers\API\Auth\DeleteAccountController;
|
use App\Http\Controllers\API\Auth\DeleteAccountController;
|
||||||
|
use App\Http\Controllers\API\Auth\Mail\VerifyMailController;
|
||||||
|
use App\Http\Controllers\API\Auth\Mail\SendMailNotificationController;
|
||||||
|
|
||||||
Route::get('/user', function (Request $request) {
|
Route::get('/user', function (Request $request) {
|
||||||
return $request->user();
|
return $request->user();
|
||||||
@ -17,4 +19,8 @@ Route::post('login', [LoginController::class, 'login'])->name('login');
|
|||||||
Route::group(['middleware' => ['auth:api']], function () {
|
Route::group(['middleware' => ['auth:api']], function () {
|
||||||
Route::post('logout', [LogoutController::class, 'logout'])->name('logout');
|
Route::post('logout', [LogoutController::class, 'logout'])->name('logout');
|
||||||
Route::post('deleteAccount', [DeleteAccountController::class, 'deleteAccount'])->name('deleteAccount');
|
Route::post('deleteAccount', [DeleteAccountController::class, 'deleteAccount'])->name('deleteAccount');
|
||||||
|
|
||||||
|
//verified email route
|
||||||
|
Route::post('email/verification-notification', [SendMailNotificationController::class, 'sendNotification'])->name('mail.notification');
|
||||||
|
Route::post('/email/verify/{id}/{hash}', [VerifyMailController::class, 'verifyMail'])->name('verification.verify');
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user