سلام استاد ممنون از دوره خوبتون
1)چطوری تو django با شماره موبایل ثبت نام کنیم و یک کد برای کاربر بفرستیم که اون رو تایید کنه؟
2)میشه که یک اپشنی بگذاریم که بعد از 1:30 دقیقه دکمه ارسال دوباره فعال شود ؟
3)ایا میشه با javascript این کار ها رو انجام بدیم؟
با تشکر از دوره خوبون
سلام وقت بخیر
فرم ثبت نام رو شما میسازید پس میتونید بجای استفاده از ایمیل ، شماره تماس بزارید و کاربرتون رو ثبت کنید برای ورود هم از همون استفاده کنید
فقط باید username هم پرکنید که میتونید اگر از کاربر ایمیل دریافت میکنید برابر همون ایمیل بزارید یا یه عبارت یونیک براش در نظر بگیرید
برای ارسال پیام کوتاه فعالسازی باید از یکی از پنل های پیامک استفاده کنید مثل کاوه نگار
میتونید یه expire date برای کد فعالسازی موبایل درنظر بگیرید مقدارش رو بزارید 2 دقیقه مثلا و بررسی کنید اگر این زمان تموم نشده بود پیام رو مجدد ارسال نکنه
برای سمت سایت هم اینکه دکمه رو غیرفعال و فعال کنی و شمارنده معکوس نمایش بدی هم با javascript یا jquery میتونید پیاده سازی کنید
سلام درمورد expire date بیشتر توضیح میدی؟
کاربر شما یه فیلد داره به عنوان کد فعال سازی یا کد تایید موبایل
در کنار این باید یه فیلد از نوع DateTime براش درنظر بگیرید برای زمان انقضاش
وقتی که کد رو برای کاربر ارسال کردید
مقدار این فیلد رو ست میکنید در تاریخ 2 دقیقه بعد
حالا موقع وارد کردن رمزش بررسی میکنید اگر زمان انقضاش تموم نشده بود معتبره در غیر این صورت ارور میدید بهش که کد جدید بگیره
من اصلا مدلی برای اینکار استفاده نکردم.
ببخشید بخش verify هم میزارید
و source پروژه رو بزارید
ممنون
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)