Before proceeding, please use the forum search feature at the top of the page to check if your question has already been answered.
I am making a courses app and I want to make sure that students don’t use other’s accounts
what is happening instead, what is going wrong.
The problem is there are 2 students that pay for one account only and login on both devices
That’s really not something you should enforce on GDevelop’s side, nor a problem that can ever be fully solved - after all, you cannot just take away something one of your clients bought because they switch devices, and there is no easy way to differentiate between two people sharing an account and the same person using the app from both their iPhone and iPad depending on whether they are home or on the go.
Netflix for example carefully engineered a complex yet easy to understand solution to try and prevent account sharing, and yet some people manage to get around it, and other people had to cancel their netflix subscription because their lifestyle was incompatible with this system.
The easiest way is simply to make sharing an account inconvenient, so that the users chose by themselves to buy a second account, even though sharing would still technically be a possibility. For example, you can add cloud saving of the course progression, a sort of leaderboard, a limited inventory of items to for example “skip” a lesson… that way, it will be more difficult to share an account: two people will not have the same progress, the “better” one will not want to see himself go down the leaderboards because of the other’s worse performance, they will get into an argument if one uses a rare item that the other had gotten… Because of the discourse caused by sharing, they’ll prefer to buy an account each.
I thought of getting MAC address of every account on the first login
and if you login again with different MAC address the app will ban your account
Is there a way to do that ?
using MAC address or IP?
Again that is a terrible idea, since you would have a ton of false positives:
- An IP address is almost guaranteed to change at some point: when connecting to a different network, to mobile data, to a VPN, restarting the router (this may happens automatically every night for some routers), and in generally many scenarios you will be assigned a different IP address.
- A MAC address, while guaranteed to be stable for a device, may be spoofed: more and more devices will assume the identity of a randomly assigned MAC address when connecting to networks for privacy reasons (Routers/ISPs won’t be able to track the specific device). My xiaomi smartphone for example does that automatically and by default!
- And generally, using on two devices is not necessarily an illegitimate use, some people just have workflows/lifestyles where they like to have the same app on multiple devices for themselves.
Such false positives are very harmful to you because people will lose faith in your product, post negatively about it, and request a charge back, which in turn can make your payment processor ban you if you get too many.
With that said, it is technically possible to get the IP address all the time, and the mac address might is possible to obtain on Android/iOS/PC builds but will require work from an experienced JS developer.
That is my good luck that is I am talking with you, Thanks for advice