Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sreenivasdoosa
GitHub Repository: sreenivasdoosa/sdoosa-algo-trade-python
Path: blob/master/src/loginmgmt/ZerodhaLogin.py
301 views
1
import logging
2
from kiteconnect import KiteConnect
3
4
from config.Config import getSystemConfig
5
from loginmgmt.BaseLogin import BaseLogin
6
7
class ZerodhaLogin(BaseLogin):
8
def __init__(self, brokerAppDetails):
9
BaseLogin.__init__(self, brokerAppDetails)
10
11
def login(self, args):
12
logging.info('==> ZerodhaLogin .args => %s', args);
13
systemConfig = getSystemConfig()
14
brokerHandle = KiteConnect(api_key=self.brokerAppDetails.appKey)
15
redirectUrl = None
16
if 'request_token' in args:
17
requestToken = args['request_token']
18
logging.info('Zerodha requestToken = %s', requestToken)
19
session = brokerHandle.generate_session(requestToken, api_secret=self.brokerAppDetails.appSecret)
20
21
accessToken = session['access_token']
22
accessToken = accessToken
23
logging.info('Zerodha accessToken = %s', accessToken)
24
brokerHandle.set_access_token(accessToken)
25
26
logging.info('Zerodha Login successful. accessToken = %s', accessToken)
27
28
# set broker handle and access token to the instance
29
self.setBrokerHandle(brokerHandle)
30
self.setAccessToken(accessToken)
31
32
# redirect to home page with query param loggedIn=true
33
homeUrl = systemConfig['homeUrl'] + '?loggedIn=true'
34
logging.info('Zerodha Redirecting to home page %s', homeUrl)
35
redirectUrl = homeUrl
36
else:
37
loginUrl = brokerHandle.login_url()
38
logging.info('Redirecting to zerodha login url = %s', loginUrl)
39
redirectUrl = loginUrl
40
41
return redirectUrl
42
43
44