ok
Direktori : /home2/selectio/www/myclassicfit.com-1/app/Http/Controllers/api/v1/auth/ |
Current File : //home2/selectio/www/myclassicfit.com-1/app/Http/Controllers/api/v1/auth/PassportAuthController.php |
<?php namespace App\Http\Controllers\api\v1\auth; use App\CPU\Helpers; use App\Http\Controllers\Controller; use App\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; use function App\CPU\translate; class PassportAuthController extends Controller { public function register(Request $request) { $validator = Validator::make($request->all(), [ 'f_name' => 'required', 'l_name' => 'required', 'email' => 'required|unique:users', 'phone' => 'required|unique:users', 'password' => 'required|min:8', ], [ 'f_name.required' => 'The first name field is required.', 'l_name.required' => 'The last name field is required.', ]); if ($validator->fails()) { return response()->json(['errors' => Helpers::error_processor($validator)], 403); } $temporary_token = Str::random(40); $user = User::create([ 'f_name' => $request->f_name, 'l_name' => $request->l_name, 'email' => $request->email, 'phone' => $request->phone, 'is_active' => 1, 'password' => bcrypt($request->password), 'temporary_token' => $temporary_token, ]); $phone_verification = Helpers::get_business_settings('phone_verification'); $email_verification = Helpers::get_business_settings('email_verification'); if ($phone_verification && !$user->is_phone_verified) { return response()->json(['temporary_token' => $temporary_token], 200); } if ($email_verification && !$user->is_email_verified) { return response()->json(['temporary_token' => $temporary_token], 200); } $token = $user->createToken('LaravelAuthApp')->accessToken; return response()->json(['token' => $token], 200); } public function login(Request $request) { $validator = Validator::make($request->all(), [ 'email' => 'required', 'password' => 'required|min:6' ]); if ($validator->fails()) { return response()->json(['errors' => Helpers::error_processor($validator)], 403); } $user_id = $request['email']; if (filter_var($user_id, FILTER_VALIDATE_EMAIL)) { $medium = 'email'; } else { $count = strlen(preg_replace("/[^\d]/", "", $user_id)); if ($count >= 9 && $count <= 15) { $medium = 'phone'; } else { $errors = []; array_push($errors, ['code' => 'email', 'message' => 'Invalid email address or phone number']); return response()->json([ 'errors' => $errors ], 403); } } $data = [ $medium => $user_id, 'password' => $request->password ]; $user = User::where([$medium => $user_id])->first(); if (isset($user) && $user->is_active && auth()->attempt($data)) { $user->temporary_token = Str::random(40); $user->save(); $phone_verification = Helpers::get_business_settings('phone_verification'); $email_verification = Helpers::get_business_settings('email_verification'); if ($phone_verification && !$user->is_phone_verified) { return response()->json(['temporary_token' => $user->temporary_token], 200); } if ($email_verification && !$user->is_email_verified) { return response()->json(['temporary_token' => $user->temporary_token], 200); } $token = auth()->user()->createToken('LaravelAuthApp')->accessToken; return response()->json(['token' => $token], 200); } else { $errors = []; array_push($errors, ['code' => 'auth-001', 'message' => translate('Customer_not_found_or_Account_has_been_suspended')]); return response()->json([ 'errors' => $errors ], 401); } } }