Implement JWT On Django Rest

Subscribe dengan Account Google untuk mendapatkan News Letter terbaru dari Halovina !
Lenovo Yoga 7i 2in1 14IML9 0WID Intel Core Ultra 5

Lenovo Yoga 7i 2in1 14IML9 0WID Intel Core Ultra 5

Lenovo Yoga 7 2-in-1 14IML9 83DJ000WID ULTRA 5-125H/16GB/512GB/TS 14.0 OLED/WIN11+OHS2021/TIDAL TEAL - Yoga 7 2-in-1 14IML9 - Part Number : 83DJ000WID - PERFORMANCE: Processor Intel® Core™ Ultra 5 125H, 14C (4P + 8E + 2LPE) / 18T, Max Turbo up to 4.5GHz, 18MB - Graphics Integrated Intel® Arc™ Graphics - Chipset Intel® SoC Platform - Memory 16GB Soldered LPDDR5x-7467

Free Klik Disini !

Django Rest Framework merupakan framework untuk membuat web RESTful API. Django Rest Framework sudah banyak digunakan oleh perusahan-perusahan besar seperti Mozilla, Heroku, Eventbrite, dan lain — lain. Penggunaan Django Rest Framework terbilang mudah, untuk suatu model kita tidak perlu mendefinisikan method GET, POST, UPDATE, dll, Django Rest Framework lah yang mengatur semua method request.

Pada tutorial sebelumnya kita sudah mempelajari tentang


selanjutnya kali ini kita akan mengimplementasikan JWT pada Django Rest Framework
install jwt pada django :

pip install djangorestframework-jwt

tambahkan pada setting.py script di bawah ini untuk membuat screet key dan token expired

SECRET_KEY = "12345"
EXPIRY_TIME = datetime.timedelta(seconds=20)
JWT_AUTH = {
'JWT_EXPIRATION_DELTA': datetime.timedelta(seconds=20), # Token expires * seconds after being issued
'JWT_ALLOW_REFRESH': True,
'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(seconds=120), # Token can be refreshed up to * seconds after being issued
}

 

buat function untuk encode dan decode JWT

def get_token(request):
username =request.GET.get('username')
password = request.GET.get('password')
if username and password is not None:
payload = {
'username': username,
'password':password,
'exp':datetime.utcnow() + settings.EXPIRY_TIME
}
token = jwt.encode(payload, settings.SECRET_KEY, algorithm='HS256')
token =str(token).replace("b'","")
token = str(token).replace("'", "")
token= {'token':token}
return HttpResponse(
json.dumps(token)
)
else:
return HttpResponse(
json.dumps({'Error': "Invalid credentials"}),
status=400
)
def get_verivy_token(request):
token =request.GET.get('token')
try:
payload = jwt.decode(token, settings.SECRET_KEY, algorithm='HS256')
return HttpResponse(
json.dumps(payload),
status=200
)

except jwt.ExpiredSignature:
return HttpResponse(json.dumps({'Error': "Token is invalid"}))
except:
return HttpResponse(json.dumps({'Error': "Token DoesNotExist"}))

baca artikel lainya :