Paradox
2 سال پیش توسط Paradox مطرح شد
2 پاسخ

ارسال sms بعد از ثبت نام

سلام وقت بخیر
من میخام بعد از ثبت نام sms برای کاربر ارسال بشه و ابتدا احراز هویت بشه و ثبت نام کامل بشه
به شکل زیر نوشتم میخام بدونم درسته؟ و اینکه کد به دیتابیس ارسال میشه ولی برام sms نمیشه
مشکل بعدی اینه که بعد از اینکه کد تایید وارد میکنم گفتم به صفحه rule هدایت بشه ولی این پیغام تو صفحه نمایش میده

This page isn’t workinglocalhost redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS
    public function register(Request $request)
    {
        $data = $request->validate([
            'phone' => 'required|unique:users,phone|digits:11|numeric|regex:/[0]{1}[0-9]{10}/',
            'password' => ['required', 'string', 'min:8', 'confirmed'],
            'reagent_code' => ['nullable' , 'string' , 'max:255' , 'min:3'],
            // 'g-recaptcha-response' =>['required' , New Recaptcha],
        ],
        [
            // 'g-recaptcha-response.required' =>'لطفا روی من ربات نیستم کلیک کنید',
     ]);

           $user = User::create([
            'phone' => $data['phone'],
            'password' => Hash::make($data['password']),
            'reagent_code' => $data['reagent_code'],
        ]);

        $apiKey = config('services.ghasedak.key');

        try{  
         $message = "کد احراز هویت شما : " . $user->phone . " ";
         $lineNumber = "10008566"; 
         $receptor = $user['phone'];
         $api = new \Ghasedak\GhasedakApi($apiKey);
         $api->SendSimple($receptor,$message,$lineNumber);  
        }  
        catch(\Ghasedak\Exceptions\ApiException $e){  
         echo $e->errorMessage();  
        }  
        catch(\Ghasedak\Exceptions\HttpException $e){  
         echo $e->errorMessage();  
        }          

        $request->session()->flash('auth' , [
            'user_id' => $user->id,
        ]);

        ActiveCode::generateCode($user);

        return redirect(route('auth.phone.token'));

    }

مدل activeCode


    public function user()
    {
        return $this->belongsTo(User::class);
    }

    public function scopeVerifyCode($query , $code,  $user)
    {
        return !! $user->activeCode()->whereCode($code)->where('expired_at' , '>' , now())->first();
    }

    public function scopeGenerateCode($query , $user)
    {
        $user->activeCode()->delete();

        do {
            $code = mt_rand(100000, 999999);
        } while($this->checkCodeIsUnique($user , $code));

        $user->activeCode()->create([
            'code' => $code,
            'expired_at' => now()->addMinutes(10)
        ]);

        return $code;
    }

    private function checkCodeIsUnique($user, int $code)
    {
        return !! $user->activeCode()->whereCode($code)->first();
    }

    private function getAliveCodeForUser($user)
    {
        return $user->activeCode()->where('expired_at' , '>' , now())->first();
    }

ثبت پرسش جدید
سید هادی خانیان
تخصص : برنامه نویس PHP
@hadikhanian 1 سال پیش مطرح شد
0

سلام
ویدئوی زیر را مشاهده کنید:
https://roocket.ir/series/laravel-projects/episode/29


Paradox
تخصص : در حال یادگیری
@paradox 1 سال پیش مطرح شد
0

@hadikhanian
این دوره تهیه کردم از قبل ولی برای لاگین هست و از نوتیفیکیشن استفاده شده
برای ثبت نام از نوتیفیکیشن نباید استفاده کرد


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام