Navigation

    SmartAPI Forum
    • Register
    • Login
    • Search
    • Categories
    • Popular
    • Groups
    • FAQs
    • API Docs

    Guide to secure your SmartAPI Account with two factor authentication

    General Discussion
    0
    104
    1955
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      saimathew123 last edited by

      does anybody using tradetron here...?

      1 Reply Last reply Reply Quote 0
      • D
        dstelangre last edited by

        @admin what about C# SDK update ?

        1 Reply Last reply Reply Quote 0
        • V
          Vignesha last edited by Vignesha

          Looks like the automation code provided by @aj_Brk worked. Thanks for that and 1 thing I had to change the IF condition as data['status'] (to make my code simpler to read - just my choice)
          if data['status']: #it should be TRUE if successfully connected
          break

          Full code:

          obj = SmartConnect(apikey)
          totp = pyotp.TOTP(s='key_below_the_qr')
          attempts = 5
          while attempts > 0:
          data = obj.generateSession(username, pwd, totp.now())
          attempts = attempts-1
          print(totp.now()) #printed the opt just to cross check with google auth
          if data['status']:
          break
          time.sleep(2)`
          refreshToken = data['data']['refreshToken']

          Overall it is good @aj_Brk thanks once again.

          @admin thanks for the effort of making the API trading safer much appreciated and if you're working on anything new then I would suggest

          1. trying to fix already existing bugs like recent auto API deletion and other issues
          2. making documentation easier to read with all the latest updates
          3. Issue with this website where clicking these icons while typing doesn't have any format effect and i have to type `` for code and ** ** for bold.(Not sure if I'm doing anything wrong) f3540dc0-6469-45d1-82c5-a3a377c48c11-image.png
          1 Reply Last reply Reply Quote 1
          • V
            vijayyande last edited by

            please update C# api also its very important

            1 Reply Last reply Reply Quote 0
            • D
              dstelangre @priya last edited by

              @priya , I have automated this process in C#

              1 Reply Last reply Reply Quote 0
              • R
                ravindra.e last edited by

                For Python, below code works like charm.

                Screenshot 2022-10-02 at 3.05.46 PM.png

                S S 2 Replies Last reply Reply Quote 2
                • A
                  admin @msg2biswajit last edited by

                  @Ashok @msg2biswajit said in Guide to secure your SmartAPI Account with two factor authentication:

                  Please update the PHP API for TOTP and share the example for PHP Smart API Because, presently this not working with PHP Smart API

                  I am sorry but modifying PHP library is not on our list. Our SDKs are all open source, and we encourage pull requests and other contributions from the community.

                  1 Reply Last reply Reply Quote 0
                  • S
                    smrtsaravanan @ravindra.e last edited by

                    @ravindra-e TypeError: 'NoneType' object is not subscriptable error came

                    R 1 Reply Last reply Reply Quote 0
                    • S
                      smrtsaravanan @admin last edited by

                      @admin Hi admin, when I try to validate totp i got below error.
                      refreshToken= data['data']['refreshToken']
                      TypeError: 'NoneType' object is not subscriptable

                      S 1 Reply Last reply Reply Quote 0
                      • I
                        ivar @admin last edited by

                        @admin TOTP required only once. Thanks for keeping it simple.

                        1 Reply Last reply Reply Quote 0
                        • I
                          ivar @aj_Brk last edited by

                          @aj_Brk thanks

                          1 Reply Last reply Reply Quote 0
                          • M
                            msg2biswajit @msg2biswajit last edited by

                            @msg2biswajit :

                            Dear All,

                            I able to solve PHP API TOTP Login issue and it's working fine for me. Please find the solution as follows for PHP API :

                            1. Download "GoogleAuthenticator.php" file from https://github.com/PHPGangsta/GoogleAuthenticator
                            
                            2. Include the file in your login generation PHP file to create the TOTP automatically as follows 
                            
                            	require_once("GoogleAuthenticator.php");
                            
                            3. Now generate the TOTP Automatically as follows :
                            
                            	$authenticator = new PHPGangsta_GoogleAuthenticator();
                            	$secret = "YOUR SECRET CODE, WHICH SHOWS DURING ENABLE TOTP UNDER GOOGLE BAR CODE";
                            	$totp = $authenticator->getCode($secret);
                            
                            4. Update the PHP API function in "SmartApi.php" file as follows :
                            
                            	public static function GenerateSession($clientcode, $password, $totp)
                            
                            5. Update the API Parameter in "SmartApi.php" file as follows :
                            
                            	$api_parameter = ['clientcode'=>$clientcode,'password'=>$password,'totp'=>$totp];
                            

                            Enjoy PHP API and login. Thanks.

                            1 Reply Last reply Reply Quote 0
                            • S
                              Sukhwant280 @ravindra.e last edited by

                              @ravindra-e Thanks for the code.. Its working for me but it fails when I pass this token to next steps i.e.
                              smartApi.getProfile(refreshToken)
                              smartApi.generateToken(refreshToken)
                              Error is: Invalid json response.

                              My understanding is that he refresh token is valid until 5 AM next day, hence I can use the same refresh Token whenever I want to make API calls.

                              Please correct me if my understanding is wrong here. Thanks in advance

                              @admin , @Ashok - Please help.

                              R 1 Reply Last reply Reply Quote 0
                              • S
                                smrtsaravanan @smrtsaravanan last edited by

                                @smrtsaravanan it is working fine now. Ignore it.

                                I have made a couple of changes. 1st I have declared it like below

                                obj=SmartConnect(api_key=apikey)
                                totp = pyotp.TOTP(s='yourkey')
                                print("pyotp",totp.now())
                                attempts = 5
                                while attempts > 0:
                                attempts = attempts-1
                                data = obj.generateSession(username, pwd, totp.now())
                                print(data)
                                if data['status']:
                                break
                                tt.sleep(2)

                                and entered my new API key.

                                Hope it helps!

                                1 Reply Last reply Reply Quote 0
                                • W
                                  webseos @aj_Brk last edited by webseos

                                  @aj_Brk I have used similar code as given below , but got the following exception
                                  Exception : Object of type TOTP is not JSON serializable

                                  but then I solved the problem

                                  But then I added last two lines and problem solved the last two lines given at the end of the following code- qrOtp is the code generated here : https://smartapi.angelbroking.com/enable-totp below the QR Code. So you have to generate your own qrOtp code here in this site. Then Install pyotp using command line "pip install pyotp"

                                  My Code Below ( Last line totp = totp.now() is very important)

                                  from smartapi import SmartConnect #or from smartapi.smartConnect import SmartConnect
                                  import config
                                  import pyotp

                                  client_code = "aaaaaa"
                                  client_pass = "bbbbbb"

                                  apiKey="yyyyyyy"
                                  qrOtp = "xxxxxxxx"
                                  totp = pyotp.TOTP(qrOtp)
                                  totp = totp.now()

                                  smartapiObj =SmartConnect(apiKey)

                                  data = smartapiObj.generateSession(client_code,client_pass,totp)
                                  print(data)

                                  C S 2 Replies Last reply Reply Quote 2
                                  • ?
                                    A Former User last edited by

                                    @admin What about golang library it is updated for totp changes.

                                    A 1 Reply Last reply Reply Quote 0
                                    • A
                                      admin @Guest last edited by admin

                                      Hi @patisupa , we have modified the goLang. Please refer here - https://github.com/angel-one/smartapigo

                                      ? 1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User @admin last edited by

                                        @admin thanks for update

                                        1 Reply Last reply Reply Quote 0
                                        • R
                                          ravindra.e @smrtsaravanan last edited by

                                          @smrtsaravanan Can you please paste your code here?

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            ravindra.e @Sukhwant280 last edited by

                                            @Sukhwant280 said in Guide to secure your SmartAPI Account with two factor authentication:

                                            smartApi.generateToken(refreshToken)

                                            Why would you need smartApi.generateToken(refreshToken)?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post