• 1400/01/29

ثبت نام با شماره موبایل و ارسال otp در django :

سلام استاد ممنون از دوره خوبتون 

 

1)چطوری تو django  با شماره موبایل ثبت نام کنیم و یک کد برای کاربر بفرستیم که اون رو تایید کنه؟

 

2)میشه که یک اپشنی بگذاریم که بعد از 1:30 دقیقه دکمه ارسال دوباره فعال شود ؟

 

3)ایا میشه با javascript این کار ها رو انجام بدیم؟

 

با تشکر از دوره خوبون

 

  • 1400/01/29
  • ساعت 14:01

سلام وقت بخیر

فرم ثبت نام رو شما میسازید پس میتونید بجای استفاده از ایمیل ، شماره تماس بزارید و کاربرتون رو ثبت کنید برای ورود هم از همون استفاده کنید

فقط باید username هم پرکنید که میتونید اگر از کاربر ایمیل دریافت میکنید برابر همون ایمیل بزارید یا یه عبارت یونیک براش در نظر بگیرید

برای ارسال پیام کوتاه فعالسازی باید از یکی از پنل های پیامک استفاده کنید مثل کاوه نگار

میتونید یه expire date برای کد فعالسازی موبایل درنظر بگیرید مقدارش رو بزارید 2 دقیقه مثلا و بررسی کنید اگر این زمان تموم نشده بود پیام رو مجدد ارسال نکنه

برای سمت سایت هم اینکه دکمه رو غیرفعال و فعال کنی و شمارنده معکوس نمایش بدی هم با javascript یا jquery میتونید پیاده سازی کنید


  • 1400/01/29
  • ساعت 17:04

سلام درمورد expire date بیشتر توضیح میدی؟


  • 1400/01/30
  • ساعت 00:52

کاربر شما یه فیلد داره به عنوان کد فعال سازی یا کد تایید موبایل

در کنار این باید یه فیلد از نوع DateTime براش درنظر بگیرید برای زمان انقضاش

وقتی که کد رو برای کاربر ارسال کردید

مقدار این فیلد رو ست میکنید در تاریخ 2 دقیقه بعد

حالا موقع وارد کردن رمزش بررسی میکنید اگر زمان انقضاش تموم نشده بود معتبره در غیر این صورت ارور میدید بهش که کد جدید بگیره


  • 1400/01/30
  • ساعت 12:49

من اصلا مدلی برای اینکار استفاده نکردم.

 


  • 1400/01/30
  • ساعت 12:52

  • 1400/01/30
  • ساعت 21:21

ببخشید بخش  verify هم میزارید 

 

و source پروژه رو بزارید

 

ممنون

 


  • 1400/02/02
  • ساعت 05:08
def login_phone(request):
    if request.method == 'POST':
        form = LoginPhoneForm(request.POST)
        if form.is_valid():
            global phone, random_code
            data = form.cleaned_data
            phone = f"0{data['phone']}"
            random_code = randint(1000, 9999)
            sms = ghasedak.Ghasedak("#")
            sms.send({'message': f"سامانه\nکد ورود به سامانه : {random_code}", 'receptor': phone,
                      'linenumber': "10008566"})
            return redirect('accounts:verify_login_phone')
    else:
        form = LoginPhoneForm()

    context = {
        'form': form,
    }
    return render(request, 'registration/login-phone.html', context)


def verify_login_phone(request):
    if request.method == 'POST':
        form = CodePhoneForm(request.POST)
        if form.is_valid():
            if random_code == form.cleaned_data['code']:
                profile = Profile.objects.get(phone_number=phone)
                user = User.objects.get(profile__id=profile.id)
                login(request, user)
                return redirect('plan:plan_list')
            else:
                messages.error(request, 'کد وارد شده اشتباه است')
    else:
        form = CodePhoneForm()
    context = {
        'form': form,
    }
    return render(request, 'registration/verify-login-phone.html', context)

logo-samandehi