mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-13 23:41:07 +03:30
Forgot Password BackEnd
This commit is contained in:
@@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Packages\Auth;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\User;
|
||||||
|
use App\Http\Controller\Api\Auth\LoginController;
|
||||||
|
|
||||||
|
trait SendsPasswordResetEmails
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a Disposable Password to the given user.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function sendDisposablePassword(Request $request)
|
||||||
|
{
|
||||||
|
$this->validatePhone($request);
|
||||||
|
|
||||||
|
// We will send the Disposable Password
|
||||||
|
// to send the Disposable Password , we will examine the response then see the message we
|
||||||
|
// need to show to the user. Finally, we'll send out a proper response.
|
||||||
|
return $this->generateAndSendCode($request);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check Disposable Password And Login
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
|
||||||
|
*/
|
||||||
|
public function checkDisposablePassword(Request $request)
|
||||||
|
{
|
||||||
|
if ( \Cache::has($request->code) ) {
|
||||||
|
$userid = \Cache::pull($request->code);
|
||||||
|
$user = User::where('id', $userid)->first();
|
||||||
|
if($user) {
|
||||||
|
|
||||||
|
$password = rand(10000000, 999999999);
|
||||||
|
$user->password = Hash::make($password);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
$request->merge([ 'cell_number' => $user->cell_number, 'password' => $password ]);
|
||||||
|
|
||||||
|
return (new LoginController())->login($request);
|
||||||
|
}
|
||||||
|
return \MessageResponse::error('User Not Found');
|
||||||
|
}
|
||||||
|
return \MessageResponse::error('Error');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected function generateAndSendCode($request)
|
||||||
|
{
|
||||||
|
$user = User::where('cell_number', $request->cell_number)->where('verified', 'Verified')->first();
|
||||||
|
if ($user) {
|
||||||
|
$code = rand(100000, 999999);
|
||||||
|
\Cache::put($code, $user->id, Carbon::now()->addMinutes(30));
|
||||||
|
SMSSender::instance()->patternSend($request->cell_number, '121', ["activate-code" => $code]);
|
||||||
|
return \MessageResponse::success('Send Disposable Password');
|
||||||
|
}
|
||||||
|
return \MessageResponse::error('User Not Found');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate the email for the given request.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function validatePhone(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate(['cell_number' => 'required|digits:11']);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Packages\SMSSender;
|
||||||
|
|
||||||
|
class SMSSender
|
||||||
|
{
|
||||||
|
private $userName = null;
|
||||||
|
private $password = null;
|
||||||
|
private $webService = null;
|
||||||
|
private $fromNumber = null;
|
||||||
|
private $messageFee = 15;
|
||||||
|
private $type = 'Other';
|
||||||
|
private static $panel = null;
|
||||||
|
private $pattern = [
|
||||||
|
'121' => 'کد فعال سازی: %activate-code%',
|
||||||
|
];
|
||||||
|
|
||||||
|
private function __construct() { }
|
||||||
|
|
||||||
|
public static function instance() {
|
||||||
|
if (static::$panel === null) {
|
||||||
|
static::$panel = new static();
|
||||||
|
}
|
||||||
|
return static::$panel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setUserName ($userName)
|
||||||
|
{
|
||||||
|
$this->userName = $userName;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setPassword ($password)
|
||||||
|
{
|
||||||
|
$this->password = $password;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setWebService ($webService)
|
||||||
|
{
|
||||||
|
$this->webService = $webService;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getUserName ()
|
||||||
|
{
|
||||||
|
return ($this->userName) ? $this->userName : env('SMS_USERNAME', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPassword ()
|
||||||
|
{
|
||||||
|
return ($this->password) ? $this->password : env('SMS_PASSWORD', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFromNumber ()
|
||||||
|
{
|
||||||
|
return ($this->fromNumber) ? $this->fromNumber : env('SMS_FROM_NUMBER', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getWebService ()
|
||||||
|
{
|
||||||
|
return ($this->webService) ? $this->webService : env('SMS_WEBSERVICE', '');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function patternSend($cellNumber, $pattern_code, $input_data)
|
||||||
|
{
|
||||||
|
if (is_string($cellNumber)) {
|
||||||
|
$cellNumber = [$cellNumber];
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
$user = $this->getUserName();
|
||||||
|
$pass = $this->getPassword();
|
||||||
|
$fromNum = $this->getFromNumber();
|
||||||
|
|
||||||
|
$client = new \SoapClient($this->getWebService());
|
||||||
|
$client->sendPatternSms($fromNum, $cellNumber, $user, $pass, $pattern_code, $input_data);
|
||||||
|
|
||||||
|
} catch (\SoapFault $sf) {
|
||||||
|
print $sf->faultcode . "\n";
|
||||||
|
print $sf->faultstring . "\n";
|
||||||
|
return ['code' => $sf->faultcode, 'message' => $sf->faultstring];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function send($cellNumber, $messageContent)
|
||||||
|
{
|
||||||
|
if (is_string($cellNumber)) {
|
||||||
|
$cellNumber = [$cellNumber];
|
||||||
|
}
|
||||||
|
ini_set("soap.wsdl_cache_enabled", "0");
|
||||||
|
try {
|
||||||
|
$user = $this->getUserName();
|
||||||
|
$pass = $this->getPassword();
|
||||||
|
$fromNum = $this->getFromNumber();
|
||||||
|
//If you want to send in the future ==> $time = '2016-07-30' //$time = '2016-07-30 12:50:50'
|
||||||
|
$client = new \SoapClient($this->getWebService());
|
||||||
|
$client->SendSMS($fromNum, $cellNumber, $messageContent, $user, $pass, '', 'send');
|
||||||
|
return true;
|
||||||
|
} catch (\SoapFault $sf) {
|
||||||
|
print $sf->faultcode . "\n";
|
||||||
|
print $sf->faultstring . "\n";
|
||||||
|
return ['code' => $sf->faultcode, 'message' => $sf->faultstring];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+4
-2
@@ -16,8 +16,9 @@ Route::group(['namespace' => 'Api'],function () {
|
|||||||
Route::post('/login', 'Auth\LoginController@login')->name('login');
|
Route::post('/login', 'Auth\LoginController@login')->name('login');
|
||||||
Route::post('/logout', 'Auth\LoginController@logout')->name('logout')->middleware('auth:api');
|
Route::post('/logout', 'Auth\LoginController@logout')->name('logout')->middleware('auth:api');
|
||||||
Route::post('/register', 'Auth\RegisterController@register')->name('register');
|
Route::post('/register', 'Auth\RegisterController@register')->name('register');
|
||||||
Route::post('/password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
|
Route::post('/password/phone', 'Auth\ForgotPasswordController@sendDisposablePassword');
|
||||||
Route::post('/password/reset', 'Auth\ResetPasswordController@reset')->name('password.reset');
|
Route::post('/password/verifyCode', 'Auth\ForgotPasswordController@checkDisposablePassword');
|
||||||
|
Route::post('/password/reset', 'Auth\ResetPasswordController@reset')->name('password.reset')->middleware('auth:api');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -33,3 +34,4 @@ Route::post('Users/ChangeStatus/{User}', 'UserController@changeStatus')->middlew
|
|||||||
Route::post('Users/ChangeRole/{User}', 'UserController@changeRole')->middleware('auth:api');
|
Route::post('Users/ChangeRole/{User}', 'UserController@changeRole')->middleware('auth:api');
|
||||||
Route::post('UpdateInfo', 'UserController@updateInfo')->middleware('auth:api');
|
Route::post('UpdateInfo', 'UserController@updateInfo')->middleware('auth:api');
|
||||||
Route::resource('Users', 'UserController');
|
Route::resource('Users', 'UserController');
|
||||||
|
Route::post('/TestResults/Verify/{TestResult}', 'TestResultController@verifyTestResult');
|
||||||
|
|||||||
+5
-6
@@ -10,8 +10,10 @@
|
|||||||
| contains the "web" middleware group. Now create something great!
|
| contains the "web" middleware group. Now create something great!
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
//
|
||||||
|
// app()->bind('messages', function() {
|
||||||
|
// return new \App\Appended\Classes\Common\Response\MessageResponse;
|
||||||
|
// });
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -42,9 +44,6 @@ Route::post('oauth/token/refresh', '\Laravel\Passport\Http\Controllers\Transient
|
|||||||
Route::get('oauth/tokens', '\Laravel\Passport\Http\Controllers\AuthorizedAccessTokenController@forUser')->middleware('auth:api');
|
Route::get('oauth/tokens', '\Laravel\Passport\Http\Controllers\AuthorizedAccessTokenController@forUser')->middleware('auth:api');
|
||||||
Route::delete('oauth/tokens/{token_id}', '\Laravel\Passport\Http\Controllers\AuthorizedAccessTokenController@destroy')->middleware('auth:api');
|
Route::delete('oauth/tokens/{token_id}', '\Laravel\Passport\Http\Controllers\AuthorizedAccessTokenController@destroy')->middleware('auth:api');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Vue Router
|
| Vue Router
|
||||||
@@ -55,4 +54,4 @@ Route::delete('oauth/tokens/{token_id}', '\Laravel\Passport\Http\Controllers\Aut
|
|||||||
*/
|
*/
|
||||||
Route::any('{all}', function(){
|
Route::any('{all}', function(){
|
||||||
return view('welcome');
|
return view('welcome');
|
||||||
})->where('all' ,'.*');
|
})->where(['all' => '.*']);
|
||||||
|
|||||||
Reference in New Issue
Block a user