Hi Xian,
Please find the answers inline:
- is there a way to get the user id of a user? (not the username, but a sequential id or a guid or something that uniquely identifies the user in the system, other than through a readable username)
Answer: For us user name is the unique identifier, so you can consider this as user ID.
- if there is no internal user id, are there plans of including it?
Answer: The User Management Module is built considering the user name as a unique identifier and hence it is always advisable to pass some unique id while calling createUser API. We are not assigning any random key to any particular user as his user id considering the fact that it may be hard to remember while login again. If he can create the unique user name by his/her own then it will be easier to remember.
- must the username be unique?
Answer: Yes
- if the username is unique, are there plans to implement a way to either duplicate usernames (for example by adding a user id as asked above)?
Answer: As our Authenticate API uses userName and Password to uniquely identified the user while authenticating the new session to the user, hence two users can not be allowed to have same user name
- is there a way to use a display name? so my account name is "superplayer", but I want my in-game name to be "Rockstar01". I will login with username "superplayer" and password "super" but everyone sees me as "Rockstar01" and next week I can change to "Rockstar02". Is there such a system in place? If not, are there plans for it?
Answer: Yes, you can add metaInfo to the user in a JSON doc which can contain display name. This doc can be modified whenever required and can be fetched along with the user details.
- is there a way to add custom fields/metadata for users? For example adding a nickname, age (yes I know you can calculate it from a DOB, but it is an example), favorite color and some other social trivia stuff? if not, are there plans for it? (maybe like a hashmap/list of strings and such)
Answer: Yes, you can add as explained in above answer
- is there support for teams/clans? And if not are there plans for a team management service? i.e. Rockstar01 is a member of team SuperTeam1337. SuperTeam1337 has 3 memebers. SuperTeam1337 has some info/bio for visitors or an avatar/icon etc.
Answer: As of now, there is no direct API available for team or clans management. However, you can use our Stoage module where you can store the team info in a JSON doc. You can also use our Buddy Services to form a group which you can call it as team.
- is there support for cdkeys or something similar? Like uniquely authenticating an application (maybe, for example, replacing the api private key with a cd key hash/checksum that is unique for each user) per user/device
Answer: As of now, there is no support for cdkeys available. May be if you could provide some more information on the user case of it then I may be able to suggest some alternatives
- how can I add penalties for a player? Rockstart01 harassed somebody. he/she deserves a 6 month ban or something like that (but automatic). Or Rockstar01 can now only play game type X instead of all of them. Is there such a system in place? If not, are there plans for it?
Answer: You can user lockUser / unlockUser APIs of User Management module to lock or unlock the user account but it can not be done automatically. The APIs need to be called whenever these actions are required. To automate, you can use these APIs in combination with Custom Code APIs.
Let me know if you have any further query, I will be happy to help.
Thanks.