Bicara Itu Ada SeninyaKetika komunikasi menjadi hal yang penting untuk bersaing, pakar komunikasi Oh Su Hyang mengeluarkan buku yang sangat berarti. Selain berisi tentang pengalaman peningkatan diri, buku ini juga memuat berbagai konten mengenai teknik komunikasi, persuasi, dan negosiasi. Buy |
Pada tutorial sebelumnya kita telah membuat konfigurasi project django, di tutorial kali ini kita akan belajar tentang Serializer dan JWT.
Serializer merupakan sebuah fungsi di Django framework yang digunakan untuk mengubah objek menjadi tipe data yang dapat dimengerti oleh javascript dan kerangka front-end lainya.
Serializers juga menyediakan deserialisasi, memungkinkan data yang diuraikan untuk diubah kembali menjadi tipe yang kompleks, setelah terlebih dahulu memvalidasi data yang masuk.
Penjelasan lebih detail tentang serializers dapat Anda baca di dokumentasinya Djangorest Framework.
Sebelum melanjutkan tutorial ini pastikan Anda sudah membaca tutorial sebelumnya tentang konfigurasi django project.
python manage.py startapp api
python manage.py startapp users
NSTALLED_APPS = [
...
'users',
'api',
]
Kemudian buat routing url untuk api user login:
a) Buat file urls.py di app api
from django.urls import pathurlpatterns = []
b) Routing app api ke main project Anda, update urls.py di direktory main project
from django.urls import path, includeurlpatterns = [
path('api/', include('api.urls')),
]
from django.contrib.auth import authenticatedef checkUserLogin(email, password):
user = authenticate(username=email, password=password)
if user is not None:
return True
else:
return False
from rest_framework import serializersclass LoginSerializer(serializers.Serializer):
email = serializers.CharField(max_length=50)
password = serializers.CharField(max_length=50)
from rest_framework.views import APIView
from api.serializers import LoginSerializer
from rest_framework.parsers import JSONParser
from users.views import checkUserLogin
from django.http import JsonResponseclass LoginView(APIView):
def post(self, *args, **kwargs):
try:
data = JSONParser().parse(self.request)
serializer = LoginSerializer(data=data)
if serializer.is_valid():
if checkUserLogin(data['email'],data['password']):
return JsonResponse(data = {
"message": "Sucess",
"token": ""
}, status=200)
else:
return JsonResponse(data = {
"message": "Cek user dan password Anda "
}, status=400)
else:
return JsonResponse(serializer.errors, status=400)
except Exception as e:
return JsonResponse(data = {
"message": str(e)
}, status=400)
from django.urls import path
from api.users.views import LoginViewurlpatterns = [
path('v1/users/login', LoginView.as_view(), name='api_user_login')
]
import jwt
from django.conf import settingsdef jwtEncode(payload):
jwt_token = jwt.encode(payload, settings.SECRET_KEY, algorithm="HS256")
return jwt_token
...
token = jwtEncode({ "email": data['email'], "time": timezone.now().strftime("%Y-%m-%d %H:%M:%S %z") })
....
{
"email":"admin@example.com",
"password":"testXyz123"
}
Jika semua berjalan lancar anda akan mendapatkan response sebagai berikut:
{
"message": "Sucess",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6ImFkbWluQGV4YW1wbGUuY29tIiwidGltZSI6IjIwMjItMDktMDkgMTE6NTQ6NTkgKzAwMDAifQ.1hF2T1JVh4_BXnim8YRE6UdBwKkbt0BrA3ImmIv1N1M"
}
Selesai sudah seri tutorial user service login, di tutorial selanjutnya kita akan membuat CRUD service produk.
Github: https://github.com/halovina/hvsuserservice/tree/bagian-2
Video :