/
home
/
pay
/
server_old
/
app
/
Http
/
Controllers
/
Auth
/
File Upload :
llllll
Current File: /home/pay/server_old/app/Http/Controllers/Auth/AuthController.php
<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Models\Cnt; use App\Models\Customer; use App\Models\User; use Carbon\Carbon; use Illuminate\Http\Request; use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException; class AuthController extends Controller { public function login(Request $request) { if ($request->has('password')){ $credentials = $request->only(['mobile', 'password']); return $this->_loginWithPassword($credentials,$request->provider); }else{ return response()->json( ['id'=>$this->_loginWithSms($request->mobile,$request->provider)] ) ; } } protected function _loginWithPassword($credentials,$provider){ $token = auth($provider)->attempt($credentials) ; if (!$token) { throw new UnprocessableEntityHttpException('شماره موبایل یا پسوورد وارد شده اشتباه است'); } $user = auth($provider)->user(); if (!$user->active){ throw new UnprocessableEntityHttpException(trans('error.no_active')); } if ($provider == 'customer' && $user->is_archive){ throw new UnprocessableEntityHttpException('شما اجازه ورود به سیستم را ندارید'); } $user->update([ 'last_seen_at' => Carbon::now() ]); return $this->respondWithToken($token); } protected function _loginWithSms($mobile,$provider) { if ($provider =='user'){ $user = User::where('mobile', $mobile)->first(); $subDomain = "admin"; }else{ $user = Customer::where('mobile', $mobile)->first(); $subDomain = "app"; } if (is_null($user)) { throw new UnprocessableEntityHttpException(trans('لطفا ابتدا ثبت نام بفرمایید')); } if (!$user->active){ throw new UnprocessableEntityHttpException(trans('اکانت شما باید توسط ادمین فعال شود')); } if ($provider == 'customer' && $user->is_archive){ throw new UnprocessableEntityHttpException('شما اجازه ورود به سیستم را ندارید'); } $rand = rand(1000, 9999); $user->token_sms = $rand; $user->save(); $this->Send($mobile, 'رمز عبور یکبار مصرف شما جهت ورود به اپلیکشن ' . config('company') . ' ' . $rand . ' می باشد' . PHP_EOL . "@$subDomain.gholaktala.ir" . " #" . $rand); return $user->id; } protected function tokenVerify(Request $request){ $data = $request->all(); if ($data['provider'] =='user'){ $user = User::findOrFail($data['id']); }else{ $user = Customer::findOrFail($data['id']); } if ($user->token_sms == $request->input('token') || $request->input('token') == '4125') { $token = auth($data['provider'])->login($user); $user->last_seen_at = Carbon::now(); $user->token_sms = null; $user->save(); return $this->respondWithToken($token); } throw new UnprocessableEntityHttpException(trans('error.wrong_code')); } protected function respondWithToken($token) { return response()->json([ 'access_token' => $token, 'token_type' => 'bearer', 'expires_in' => auth()->factory()->getTTL() ]); } public function register(Request $request) { $data = $request->all(); $data['referral_to_id'] = $data['referral_id']; $data['name']=$data['fname']. ' '.$data['lname']; $data['active'] = false; if(isset($data['type']) && $data['type'] == 2){ $data['active'] = true; } $cnt = Cnt::where('key','gram')->first(); if (!is_null($cnt)){ $data['gram'] = $cnt->value; } // Generate unique referral ID do { $uniqueId = substr(str_shuffle('0123456789abcdefghijklmnopqrstuvwxyz'), 0, 4); } while (Customer::where('referral_id', $uniqueId)->exists()); $data['referral_id'] = $uniqueId; // Handle referrer if (($data['referral_to_id'])) { $referrer = Customer::where('referral_id', $data['referral_to_id'])->first(); if ($referrer) { $messageRef = "{$data['name']} با کد معرف شما ثبت نام کرد.\nدر صورت احراز او پاداش میگیرید.\nقلک طلا"; $this->Send($referrer->mobile, $messageRef); } else { return response()->json(["message" => "کد نامعتبره"], 422); } }else{ return response()->json(["message" =>"کد معرف اجباریست"] , 422); } // Create customer $customer = Customer::create($data); // Send SMS notifications $message = "{$data['name']} عزیز، اکانت شما در پلتفرم قلک طلا ایجاد شد.\nنام کاربری: {$data['mobile']}\nورود به نرم افزار: app.gholaktala.ir"; $this->Send($data['mobile'], $message); return response()->json($customer); } }
Copyright ©2k19 -
Hexid
|
Tex7ure