GOAL : I am creating a mobile app that needs to hit an AWS server and I want to make sure only my app can hit the server.
CONSTRAINTS : I never want the user to have to login to the app. If my research is correct, I believe this eliminates the use of tokens (such as JWT). I think this eliminates the use of tokens because I would have no way of refreshing the token in the user's app.
PROPOSED SOLUTION : Encrypt a key (a string) in the app (let's say the string is "allow") using bcrypt in the mobile app. Use a HTTPS POST request to hit my server with the encrypted key "allow" embedded in the body. In my server logic I would read the contents of the HTTPS POST body, decrypt the string, and allow further logic to be done in the server if the decrypted string = "allow".
QUESTION Does my proposed solution make sense? If not, could I get guidance to what I should do?
I believe this is possible because I read here that the the body of a HTTPS POST is encrypted. Therefore I think placing a bcrypt encrypted key in the body should be an extra layer of security to my server.