def _auth(self, password):
auth_payload = {"request-type": "GetAuthRequired", "message-id": str(self.id)}
self.id += 1
self.ws.send(json.dumps(auth_payload))
result = json.loads(self.ws.recv())
if result['authRequired']:
secret = base64.b64encode(hashlib.sha256((password + result['salt']).encode('utf-8')).digest())
auth = base64.b64encode(hashlib.sha256(secret + result['challenge'].encode('utf-8')).digest()).decode('utf-8')
auth_payload = {"request-type": "Authenticate", "message-id": str(self.id), "auth": auth}
self.id += 1
self.ws.send(json.dumps(auth_payload))
result = json.loads(self.ws.recv())
if result['status'] != 'ok':
raise exceptions.ConnectionFailure(result['error'])
pass
评论列表
文章目录