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.
    • A
      aj_Brk @admin last edited by

      @ivar i don't think you need to paas totp everytime. I tested get profile and other apis. It is working like before. Only login has changes.

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

        @admin i too had to build the new code manually. Can you get the code merged to main?

        1 Reply Last reply Reply Quote 0
        • punit
          punit @mudit236 last edited by

          @mudit236 AB's release management is a joke which we all know 🙂

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

            @aj_Brk Secret is time based one generated by local app or code using the secret key or QR code. It will be authenticated against the masterkey with AB servers. So it is possible

            A 1 Reply Last reply Reply Quote 0
            • punit
              punit @anil_patel last edited by

              @anil_patel You can generate using code locally . for example for Python, use pyotp package

              1 Reply Last reply Reply Quote 0
              • punit
                punit @ravitandur last edited by

                @ravitandur It is same API, so should be working. only extra totp need to be sent.

                1 Reply Last reply Reply Quote 0
                • A
                  aj_Brk @punit last edited by

                  @Ashok what i meant is you can't get this secret by just username and password as Anil is asking. One has to go to enable otp page to get this code one time.

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

                    @aj_Brk correct

                    1 Reply Last reply Reply Quote 0
                    • A
                      aj_Brk @mudit236 last edited by

                      @babitakundu i guess you have to manually download the repo and run python setup.py install. I dont see the code yet updated on pip

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

                        @aj_Brk Admins are adding in pip. If you want to try meanwhile, edit directly in local or download from github.

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

                          @babitakundu just replace the generatesession def with new one. it worked for me. You have to manually edit in source file

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

                            @aj_Brk code generated from "pyotp" not working for me, getting below output with your code. Any suggestion. If I am using the code from DUO app I am able to login successfully
                            data = obj.generateSession(clientCode, password, totp.now())
                            print(data)

                            Shell output:
                            pyotp: 586380
                            {'status': False, 'message': 'Invalid totp', 'errorcode': 'AB1050', 'data': None}

                            punit 1 Reply Last reply Reply Quote 0
                            • punit
                              punit @milind017 last edited by

                              @milind017 this need to do like this.

                              totp = pyotp.TOTP(s='secret key in qr uri after qr generation'

                              And then the generate session.

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

                                @Ashok Yes did the same. Still getting the same
                                obj = SmartConnect(api_key=historyApiKey)

                                totp = pyotp.TOTP(s='secret key in qr uri after qr generation')
                                print("pyotp",totp.now())

                                attempts = 5
                                while attempts > 0:
                                attempts = attempts-1
                                data = obj.generateSession(clientCode, password, totp.now())
                                print(data)
                                if data['status']:
                                break
                                time.sleep(2)

                                A 1 Reply Last reply Reply Quote 0
                                • S
                                  SSumit @gautamnaik1994 last edited by

                                  @gautamnaik1994 https://smartapi.angelbroking.com/topic/2383/automate-totp-login-using-python-module-pyotp

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

                                    @SSumit
                                    I have tried with shared link code, still getting the same
                                    d83195c5-6672-4ec1-868a-4ee367253b3a-image.png

                                    Shell Output:
                                    with TOTP: 932310
                                    With parse_uri: 932310
                                    {'status': False, 'message': 'Invalid totp', 'errorcode': 'AB1050', 'data': None}

                                    A punit S 3 Replies Last reply Reply Quote 0
                                    • A
                                      aj_Brk @milind017 last edited by

                                      @milind017 I see that you have put condition in if data['status'] , is it going in retry at all ?

                                      1 Reply Last reply Reply Quote 1
                                      • A
                                        aj_Brk @milind017 last edited by

                                        @milind017 try with this condition

                                        if not data['message'].contains('Invalid totp'):
                                        break

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

                                          @milind017 @aj_Brk why retry, it passed almost always on first time. Anyway. Not sure why parse_uri is needed.. also just pass totp as a string

                                          A M 2 Replies Last reply Reply Quote 1
                                          • G
                                            gokul last edited by

                                            TypeError: SmartConnect.generateSession() takes 3 positional arguments but 4 were given

                                            A G 2 Replies Last reply Reply Quote 1
                                            • First post
                                              Last post