def _login(self, email, passwordd, certificate=None, loginName=url.systemname):
self._thriftTransport.targetPath(url.LINE_AUTH_QUERY_PATH)
session_json = url.get_json(url.parseUrl(url.LINE_SESSION_LINE_QUERY_PATH))
self.certificate = certificate
session_key = session_json['session_key']
message = (chr(len(session_key)) + session_key +
chr(len(email)) + email +
chr(len(passwordd)) + passwordd).encode('utf-8')
keyname, n, e = session_json['rsa_key'].split(",")
pub_key = rsa.PublicKey(int(n, 16), int(e, 16))
crypto = rsa.encrypt(message, pub_key).encode('hex')
self._thriftTransport.targetPath(url.LINE_AUTH_QUERY_PATH)
result = self._client.loginWithIdentityCredentialForCertificate(
IdentityProvider.LINE, keyname, crypto, True, '127.0.0.1', loginName, certificate)
if result.type == 3:
url._pincode = result.pinCode
self.callback.Pinverified(url._pincode)
getAccessKey = url.get_json(
url.parseUrl(url.LINE_CERTIFICATE_PATH), allowHeader=True)
self.verifier = getAccessKey['result']['verifier']
result = self._client.loginWithVerifierForCerificate(self.verifier)
self.certificate = result.certificate
self.authToken = result.authToken
self.urls.set_Headers('X-Line-Access', result.authToken)
self._thriftTransport.setAccesskey(self.authToken)
self.onLogin()
self._thriftTransport.targetPath(url.LINE_API_QUERY_PATH_FIR)
elif result.type == 2:
pass
elif result.type == 1:
self.authToken = result.authToken
self.urls.set_Headers('X-Line-Access', result.authToken)
self._thriftTransport.setAccesskey(self.authToken)
self.onLogin()
self._thriftTransport.targetPath(url.LINE_API_QUERY_PATH_FIR)
评论列表
文章目录