There isn't much you can do, if some decompiles your code, he will find out the way you create your tokens and use that process to create fake tokens. Nevertheless, this will add one more level of protection since not everybody is familiar with decompiling and reverse engineering an app
You can't 100% secure your app from fake registrations since the users don't have any credentials that you can check. Fake registrations are not that bad since they cannot case too much damage to you.
You can limit the damage from fake registrations
- delay every registration response z seconds
- don't allow more than x registrations per min from the same ip
- don't allow more than y registrations per min
What i would suggest is use https (http is plain text) to protect the app - server communication so no third party can get user data. This will encrypt urls along with headers and content so nobody will know what your app is sending and to which url. Only decompiling the app can beat that.