Tutorial RESTful API dengan Flask Python Part 5—Login

Membuat RESTful API dengan Micro Framework Python, Flask Part 5 —Login

Hudya
2 min readDec 9, 2019

Halo semua, tutorial ini adalah lanjutan dari tutorial sebelumnya yaitu:

Nah pada tutorial sebelumnya, kita telah berhasil menambahkan data user dengan melakukan hashing pada passwordnya. Namun kita bingung, gimana cara melakukan verifikasi kredensial untuk memastikan apakah password yang kita masukkan valid.

Mudah sekali agan-agan, yuk buka UserController.py kita dan tambahkan fungsi ini.

def login():
try:
email = request.json['email']
password = request.json['password']

user = Users.query.filter_by(email=email).first()
if not user:
return response.badRequest([], 'Empty....')

if not user.checkPassword(password):
return response.badRequest([], 'Your credentials is invalid')

data = singleTransform(user)
return response.ok(data, "")
except Exception as e:
print(e)

Masih inget fungsi checkPassword pada class Users?

def checkPassword(self, password):
return check_password_hash(self.password, password)

Disini kita akan melakukan pengecekan dari password yang telah di hash dan password yang kita input.

Disini kita tidak perlu menambahkan parameter hashed_password karena objek yang pertama kali dibuat sudah otomatis menambahkan variabel self.password dari objek yang dibuat. Berarti kita tinggal menambahkan variabel password yang kita input saja.

Lalu pada Python tidak seperti bahasa lainnya yang lebih modern sehingga dapat menggunakan simbol ajaib yaitu tanda seru (!). Pada python kita menggunakan not untuk representasi tanda seru (!) dan menandakan statement tersebut tidak benar alias false.

Yang salah:

if !user.checkPassword(password):
return response.badRequest([], 'Your credentials is invalid')

Yang benar:

if not user.checkPassword(password):
return response.badRequest([], 'Your credentials is invalid')

Sekarang kita dapat menambahkan routes baru yaitu login. Yuk kita buka routes.py. Cukup tambahkan method login seperti ini:

@app.route('/login', methods=['POST'])
def login():
return UserController.login()

Oke finish! Sekarang yuk mari kita coba!

Ini yang terjadi kalo saya salah memasukkan password.

Sedangkan ini yang terjadi kalau saya berhasil memasukkan password dengan benar.

Mudah sekali kan belajar Python Flask? Python Flask ini meskipun pemain lama tapi hingga sekarang juga menjadi framework tangguh yang dicari-cari para perusahaan loh, selain itu developer Python Flask ini masih tergolong tidak sebanyak Pi ech Pi (PHP) dan Node.js.

Jadi gimana, kamu tertarik jadi Backend Developer dengan kemampuan Python Flask?

Next saya akan bahas menggunakan JWT dan middleware di Python Flask jadi staytune ya!

--

--

Hudya
Hudya

Written by Hudya

Which is more difficult, coding or counting? Not both of them, the difficult one is sharing your knowledge to people without asking the payment.

No responses yet