mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/izyim-api.git
synced 2026-08-21 13:34:16 +00:00
added verification
This commit is contained in:
@@ -17,10 +17,10 @@ class AuthController extends Controller
|
||||
public function register(Request $request)
|
||||
{
|
||||
$credentials = $request->only('name', 'email', 'password');
|
||||
|
||||
$rules = [
|
||||
'name' => 'required|min:4',
|
||||
'email' => 'required|email|max:255|unique:users',
|
||||
'password' => 'required|min:6',
|
||||
'name' => 'required|max:255',
|
||||
'email' => 'required|email|max:255|unique:users'
|
||||
];
|
||||
$validator = Validator::make($credentials, $rules);
|
||||
if($validator->fails()) {
|
||||
@@ -29,8 +29,18 @@ class AuthController extends Controller
|
||||
$name = $request->name;
|
||||
$email = $request->email;
|
||||
$password = $request->password;
|
||||
User::create(['name' => $name, 'email' => $email, 'password' => Hash::make($password)]);
|
||||
return $this->login($request);
|
||||
|
||||
$user = User::create(['name' => $name, 'email' => $email, 'password' => Hash::make($password)]);
|
||||
$verification_code = str_random(30); //Generate verification code
|
||||
DB::table('user_verifications')->insert(['user_id'=>$user->id,'token'=>$verification_code]);
|
||||
$subject = "Please verify your email address.";
|
||||
Mail::send('email.verify', ['name' => $name, 'verification_code' => $verification_code],
|
||||
function($mail) use ($email, $name, $subject){
|
||||
$mail->from(getenv('FROM_EMAIL_ADDRESS'), "From User/Company Name Goes Here");
|
||||
$mail->to($email, $name);
|
||||
$mail->subject($subject);
|
||||
});
|
||||
return response()->json(['success'=> true, 'message'=> 'Thanks for signing up! Please check your email to complete your registration.']);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,6 +52,7 @@ class AuthController extends Controller
|
||||
public function login(Request $request)
|
||||
{
|
||||
$credentials = $request->only('email', 'password');
|
||||
|
||||
$rules = [
|
||||
'email' => 'required|email',
|
||||
'password' => 'required',
|
||||
@@ -50,10 +61,13 @@ class AuthController extends Controller
|
||||
if($validator->fails()) {
|
||||
return response()->json(['success'=> false, 'error'=> $validator->messages()]);
|
||||
}
|
||||
|
||||
$credentials['is_verified'] = 1;
|
||||
|
||||
try {
|
||||
// attempt to verify the credentials and create a token for the user
|
||||
if (!$token = JWTAuth::attempt($credentials)) {
|
||||
return response()->json(['success' => false, 'error' => 'We cant find an account with this credentials.'], 401);
|
||||
if (! $token = JWTAuth::attempt($credentials)) {
|
||||
return response()->json(['success' => false, 'error' => 'We cant find an account with this credentials. Please make sure you entered the right information and you have verified your email address.'], 401);
|
||||
}
|
||||
} catch (JWTException $e) {
|
||||
// something went wrong whilst attempting to encode the token
|
||||
@@ -72,6 +86,7 @@ class AuthController extends Controller
|
||||
*/
|
||||
public function logout(Request $request) {
|
||||
$this->validate($request, ['token' => 'required']);
|
||||
|
||||
try {
|
||||
JWTAuth::invalidate($request->input('token'));
|
||||
return response()->json(['success' => true, 'message'=> "You have successfully logged out."]);
|
||||
@@ -108,4 +123,31 @@ class AuthController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* API Verify User
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function verifyUser($verification_code)
|
||||
{
|
||||
$check = DB::table('user_verifications')->where('token',$verification_code)->first();
|
||||
if(!is_null($check)){
|
||||
$user = User::find($check->user_id);
|
||||
if($user->is_verified == 1){
|
||||
return response()->json([
|
||||
'success'=> true,
|
||||
'message'=> 'Account already verified..'
|
||||
]);
|
||||
}
|
||||
$user->update(['is_verified' => 1]);
|
||||
DB::table('user_verifications')->where('token',$verification_code)->delete();
|
||||
return response()->json([
|
||||
'success'=> true,
|
||||
'message'=> 'You have successfully verified your email address.'
|
||||
]);
|
||||
}
|
||||
return response()->json(['success'=> false, 'error'=> "Verification code is invalid."]);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user