Skip to content

Commit da929bb

Browse files
committed
Fixed login verification thanks to Chadsr for new API endpoint
1 parent 0678317 commit da929bb

File tree

1 file changed

+18
-49
lines changed

1 file changed

+18
-49
lines changed

nord_nm_gui.py

Lines changed: 18 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -353,58 +353,27 @@ def verify_credentials(self):
353353
Verifies responses and updates GUI
354354
"""
355355
if self.user_input.text() and self.password_input.text():
356-
self.statusbar.showMessage('Login Success', 2000)
357356
self.username = self.user_input.text()
358357
self.password = self.password_input.text()
359-
self.repaint()
360-
time.sleep(0.5)
361-
self.hide()
362-
self.main_ui()
358+
363359
else:
364-
self.statusbar.showMessage('Username or password field cannot be empty, 2000')
365-
# try:
366-
# resp = requests.get('https://apself.statusbar.showMessage('Login Success', 2000)
367-
# self.username = self.user_input.text()
368-
# self.password = self.password_input.text()
369-
# self.repaint()
370-
# time.sleep(0.5)
371-
# self.hide()
372-
# self.main_ui()i.nordvpn.com/token/token/' + self.user_input.text(), timeout=5)
373-
#
374-
# if resp.status_code == requests.codes.ok:
375-
# token_json = json.loads(resp.text)
376-
# token = token_json['token']
377-
# salt = token_json['salt']
378-
# key = token_json['key']
379-
#
380-
# password_hash = hashlib.sha512(salt.encode() + self.password_input.text().encode())
381-
# final_hash = hashlib.sha512(password_hash.hexdigest().encode() + key.encode())
382-
#
383-
# try:
384-
# resp = requests.get('https://api.nordvpn.com/token/verify/' + token + '/' + final_hash.hexdigest(), timeout=5)
385-
# if resp.status_code == requests.codes.ok:
386-
# self.statusbar.showMessage('Login Success', 2000)
387-
# self.username = self.user_input.text()
388-
# self.password = self.password_input.text()
389-
# self.repaint()
390-
# time.sleep(0.5)
391-
# self.hide()
392-
# self.main_ui()
393-
# else:
394-
# self.statusbar.showMessage('Invalid Credentials', 2000)
395-
# self.user_input.clear()
396-
# self.password_input.clear()
397-
# self.user_input.setFocus()
398-
# except Exception as ex:
399-
# self.statusbar.showMessage('Invalid Credentials', 2000)
400-
# self.user_input.clear()
401-
# self.password_input.clear()
402-
# self.user_input.setFocus()
403-
# else:
404-
# self.statusbar.showMessage("API Error: could not fetch token", 2000)
405-
# except Exception as ex:
406-
# self.statusbar.showMessage("API Error: could not fetch token", 2000)
407-
# self.get_api_data()
360+
self.statusbar.showMessage('Username or password field cannot be empty', 2000)
361+
try:
362+
json_data = {'username': self.username, 'password': self.password}
363+
resp = requests.post('https://api.nordvpn.com/v1/users/tokens', json=json_data, timeout=5)
364+
if resp.status_code == 201:
365+
self.statusbar.showMessage('Login Success', 2000)
366+
self.repaint()
367+
time.sleep(0.5)
368+
self.hide()
369+
self.main_ui()
370+
371+
else:
372+
self.statusbar.showMessage('Invalid Username or Password', 2000)
373+
374+
except Exception as ex:
375+
self.statusbar.showMessage("API Error: could not fetch token", 2000)
376+
self.get_api_data()
408377

409378
def get_api_data(self):
410379
"""

0 commit comments

Comments
 (0)