No, you're actively harming usability with no gain to security.
This sounds like a bad case of Security Theater*!
I say this because what you're currently doing is only just as secure as sending over the username and password over HTTPS anyways! All you add is a couple of extra setup communications. The vulnerabilities of this implementation as well as the vulnerabilities of HTTPS sending of password and username are exactly the same.
Let's break down the example:
Setting up and using the secret
- Establish secure connection
- Send payload to be stored
- Confirm payload, and if confirmed log in
Setting up and using a password
- Establish secure connection
- Send payload to be stored
- Confirm payload, and if confirmed log in
These steps are exactly the same, and provide no extra security. If a full takeover(MITM/system level) happens, the same thing that would happen with a username and password will happen to your system. The attacker will still see all data as it is transferred and accessed between your system and the server. This is why full takeovers are so dangerous. There's basically nothing you can do to protect the user. The user is using a system of communication that is no longer theirs, but the attackers and that attacker can see, and use everything in the communication.
Really all you're doing is generating a secret(commonly called a password) to be stored, and some meta data(commonly called a username) to identify it. If the meta data and secret match an entry, you retrieve that information. The only advantage you're gaining is that the user gets an extra long password. But to what end? Bcrypt has a maximum character length, so you're limiting the number of characters the individual password can have. You now also have that shared secret to worry over getting the same every time or your user or they can never log in.
Passwords and usernames over HTTPS have been used so much so often because after a certain point(the HTTPS connection) there is nothing you can do to increase security. If someone gets access to all communications, or to memory space all of your techniques have just been defeated since they just have to recreate your steps and you may never even know until they carry out their attack.
*: As of last week this phrase is now macroed on my keyboard...
*: Security theater is the act of putting practices into place that do nothing to improve security, and may actually harm it!