Membuat Service OTP Django Mysql Bagian 4 - Validate OTP

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Membuat Service OTP Django Mysql Bagian 4 - Validate OTP

Di tutorial sebelumnya kita telah belajar tentang Models dan Serializers. Sebagaimana kita tau unit test begitu penting bagi developer. Dengan unit test developer bisa menguji secara mandiri logika program yang sudah dibuat.

Dibagian ke-4 dari tutorial Membuat Service OTP Django Mysql, kita akan belajar bagaimana caranya memvalidasi OTP.

Jika kita kembali ke sequence diagram, kita akan menemukan logika bagaimana cara membuat validasi OTP.

Di bagian validasi token ini kita perlu melakukan pengecekan data terlebih dahulu apakah OTP Number yang di kirim oleh service client ada di database atau tidak.

Kemudian kita juga perlu melakukan pengecekan masa expired dari OTP Number yang dikirim oleh service client.

Ada beberapa hal yang akan kita pelajari di bagian ke-4 ini, diantara seperti dibawah ini :

1) Fungsi Filter Data OTP


Buat fungsi untuk memverifikasi data otp ke database, apakah No.HP dan OTP terdaftar di database.

def checkExistOtp(data):
try:
checkOTP = Otpservice.objects.filter(phone_number=data['phone_number'], otp_number=data['otp_number'])
if len(checkOTP) > 0:
return True, checkOTP[0], ""
return False, "", "OTP Number not found"
except Exception as e:
return False, "", str(e)

 

2) Fungsi Validate OTP


Selanjutnya dibagian yang kedua buat fungsi untuk memvalidasi apakah kode otp expired atau sudah digunakan.

def checkOTPExpired(expired_unixtime):
curent_time = datetime.now()
curent_unix_time = curent_time.timestamp()
if int(curent_unix_time) < int(expired_unixtime):
return True, "OTP valid"
else:
return False, "OTP Expired"

def validateOTP(data):
try:
pass
except Exception as e:
pass

3) Unit Test


Dibagian ini buat unit test untuk memastikan bahwa logika yang kita buat berjalan dengan benar.

class ValidateOTPTestCase(TestCase):
payload_create_otp = {
'phone_number':'62878787123'
}

def test_validate_otp_succes(self):
status, otp = create_otp(self.payload_create_otp)
payload_validate_otp = {
'phone_number':'62878787123',
'otp_number': otp
}
status, message = validateOTP(payload_validate_otp)
self.assertEqual(status, True)

4) Video Tutorial


Video :

Githubhttps://github.com/halovina/otpservice/tree/validate-otp

Baca artikel lainya:


  1. Membuat service OTP bagian 1 - OTP dan PIN

  2. Membuat service OTP bagian 2 - Sequence Diagram

  3. Membuat service user login bagian 1 - Konfigurasi Database

  4. Membuat service user login bagian 2 - Serializer dan JWT

  5. Membuat CRUD service product bagian 1 - Models Product

  6. Membuat CRUD service product bagian 2 - Function Serializer

  7. Membuat CRUD service product bagian 3 - Api Client Service

  8. Membaut CRUD service product bagian 4 - Auth User

  9. Membuat CRUD service product bagian 5 - TDR File Log

  10. Membuat CRUD service product bagian 6 - Unit Test

  11. Membuat service user register bagian 1 - Django

  12. Membuat Service user register bagian 2 - Django

  13. Membuat service filter dan download file CSV di django

  14. Django upload file menggunakan FileSystemStorage

  15. Tips meningkatkan kualitas code pada bahasa python

  16. Cara memfilter tipe data string pada golang dan python

  17. Mengubah format datetime pada bahasa python

  18. Mengolah data CSV dengan python pandas

  19. Sample join data CSV di python menggunakan pandas

  20. Menggunakan redis PUB/SUB untuk aplikasi python

  21. Implementasi blockchain ethereum pada industri real estate

  22. 4 Cara mengubah dictionary ke json pada python