-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
04006e0
commit 425d856
Showing
89 changed files
with
6,034 additions
and
6,257 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
<?php | ||
|
||
namespace App\Http\Controllers\Api\Auth; | ||
|
||
use App\User; | ||
use Carbon\Carbon; | ||
use Illuminate\Http\Request; | ||
use App\Http\Controllers\Controller; | ||
use Illuminate\Support\Str; | ||
|
||
use Illuminate\Support\Facades\Auth; | ||
|
||
class AuthController extends Controller | ||
{ | ||
///REGISTRO | ||
public function signup(Request $request) | ||
{ | ||
$request->validate([ | ||
'name' => 'required|string', | ||
'last_name'=> 'required|string', | ||
'email' => 'required|string|email|unique:users', | ||
'slug' => 'required|string|unique:users', | ||
'password' => 'required|string|confirmed', | ||
]); | ||
$user = new User([ | ||
'name' => $request->name, | ||
'email' => $request->email, | ||
'last_name'=> $request->last_name, | ||
'password' => bcrypt($request->password), | ||
'slug' => $request->slug | ||
]); | ||
$user->save(); | ||
if($user){ | ||
|
||
$newUser = $this->login($request); | ||
}; | ||
return response()->json([ | ||
'user' => $newUser->original, | ||
'message' => 'Successfully created user!'], 201); | ||
} | ||
|
||
//LOGIN | ||
public function login(Request $request) | ||
{ | ||
$request->validate([ | ||
'email' => 'required|string|email', | ||
'password' => 'required|string', | ||
// 'remember_me' => 'boolean', | ||
]); | ||
$credentials = request(['email', 'password']); | ||
if (!Auth::attempt($credentials)) { | ||
return response()->json([ | ||
'message' => 'Unauthorized'], 401); | ||
} | ||
$user = $request->user(); | ||
$tokenResult = $user->createToken('Personal Access Token'); | ||
$token = $tokenResult->token; | ||
// | ||
$remember_me = true; | ||
// | ||
if ($remember_me) { | ||
$token->expires_at = Carbon::now()->add(1,'minute'); | ||
} | ||
$token->save(); | ||
// dd($tokenResult); | ||
|
||
return response()->json([ | ||
'token' => $tokenResult->accessToken, | ||
// 'refresh_token' => $tokenResult->refreshToken, | ||
'token_type' => 'Bearer', | ||
'expires_at' => Carbon::parse( | ||
$tokenResult->token->expires_at) | ||
->toDateTimeString(), | ||
'user' => $user | ||
]); | ||
} | ||
|
||
//LOGOUT | ||
public function logout(Request $request) | ||
{ | ||
$request->user()->token()->revoke(); | ||
return response()->json(['message' => | ||
'Successfully logged out']); | ||
} | ||
|
||
//USUARIO | ||
public function user(Request $request) | ||
{ | ||
// $user = $request->user(); | ||
$user = Auth::user()->load('account'); | ||
|
||
return response()->json($user); | ||
// return User::all(); | ||
} | ||
} |
145 changes: 145 additions & 0 deletions
145
app/Http/Controllers/API/Auth/PasswordResetController.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
<?php | ||
|
||
namespace App\Http\Controllers\Api\Auth; | ||
|
||
use App\Http\Controllers\Controller; | ||
use Illuminate\Http\Request; | ||
use Carbon\Carbon; | ||
|
||
use App\Notifications\PasswordResetSuccess; | ||
use App\User; | ||
use App\PasswordReset; | ||
use App\Mail\Notificaciones; | ||
USE Illuminate\Support\Facades\Mail; | ||
use Illuminate\Support\Str; | ||
|
||
|
||
|
||
class PasswordResetController extends Controller | ||
{ | ||
|
||
|
||
|
||
|
||
/** | ||
* Create token password reset | ||
* | ||
* @param [string] email | ||
* @return [string] message | ||
*/ | ||
public function create(Request $request) | ||
{ | ||
$request->validate([ | ||
'email' => 'required|string|email', | ||
]); | ||
$user = User::where('email', $request->email)->first(); | ||
if (!$user){ | ||
return response()->json([ | ||
"message" => "No podemos encontrar un usuario con esa dirección de correo electrónico." | ||
], 404); | ||
} | ||
$passwordReset = PasswordReset::updateOrCreate( | ||
['email' => $user->email], | ||
[ | ||
'email' => $user->email, | ||
'token' => Str::random(60) | ||
] | ||
); | ||
if ($user && $passwordReset){ | ||
|
||
$mail_destino = $user->email; | ||
$msg = [ | ||
'subject' => 'Nueva Era - Restablecimiento de contraseña', | ||
'title' => 'Cambiamos tu contraseña?', | ||
'paragraph' => 'Enviamos este correo electrónico porque recibimos una solicitud de restablecimiento de contraseña para su cuenta. Esta solicitud es válida por 12hs.', | ||
'button' => [ | ||
'button_name' => 'Crear contraseña', | ||
'button_link' => url('/api/password/find/'.$passwordReset->token) | ||
] | ||
]; | ||
|
||
// Mail::to($mail_destino)->queue(new Notificaciones($msg)); | ||
// // $user->notify( | ||
// // new PasswordResetRequest($passwordReset->token) | ||
// // ); | ||
|
||
// return response()->json([ | ||
// 'message' => '¡Hemos enviado un enlace por correo electrónico!' | ||
// ]); | ||
} | ||
} | ||
|
||
|
||
|
||
|
||
|
||
/** | ||
* Find token password reset | ||
* | ||
* @param [string] $token | ||
* @return [string] message | ||
* @return [json] passwordReset object | ||
*/ | ||
public function find($token) | ||
{ | ||
$passwordReset = PasswordReset::where('token', $token)->first(); | ||
if (!$passwordReset) | ||
return redirect()->away("https://nuevaerauruguay.com/acceder?error='Este token de restablecimiento de contraseña no es válido.'"); | ||
// return response()->json([ | ||
// 'message' => 'Este token de restablecimiento de contraseña no es válido.' | ||
// ], 404); | ||
if (Carbon::parse($passwordReset->updated_at)->addMinutes(720)->isPast()) { | ||
$passwordReset->delete(); | ||
return redirect()->away("https://nuevaerauruguay.com/acceder?error='Este token de restablecimiento de contraseña no es válido.'"); | ||
|
||
// return response()->json([ | ||
// 'message' => 'Este token de restablecimiento de contraseña no es válido.' | ||
// ], 404); | ||
} | ||
return redirect()->away("https://nuevaerauruguay.com/acceder?email=".$passwordReset->email."&token=".$passwordReset->token); | ||
// return response()->json($passwordReset); | ||
} | ||
|
||
|
||
|
||
|
||
/** | ||
* Reset password | ||
* | ||
* @param [string] email | ||
* @param [string] password | ||
* @param [string] password_confirmation | ||
* @param [string] token | ||
* @return [string] message | ||
* @return [json] user object | ||
*/ | ||
public function reset(Request $request) | ||
{ | ||
$request->validate([ | ||
'email' => 'required|string|email', | ||
'password' => 'required|string|confirmed', | ||
'token' => 'required|string' | ||
]); | ||
$passwordReset = PasswordReset::where([ | ||
['token', $request->token], | ||
['email', $request->email] | ||
])->first(); | ||
if (!$passwordReset) | ||
return response()->json([ | ||
'message' => 'Este token de restablecimiento de contraseña no es válido.' | ||
], 404); | ||
$user = User::where('email', $passwordReset->email)->first(); | ||
if (!$user) | ||
return response()->json([ | ||
'message' => 'No podemos encontrar un usuario con esa dirección de correo electrónico.' | ||
], 404); | ||
$user->password = bcrypt($request->password); | ||
$user->save(); | ||
$passwordReset->delete(); | ||
// $user->notify(new PasswordResetSuccess($passwordReset)); | ||
return response()->json([ | ||
'message' => 'Contraseña actualizada correctamente.' | ||
], 200); | ||
// return response()->json($user); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.