Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorporate OpenRCT2 login system #3155

Closed
IntelOrca opened this issue Mar 21, 2016 · 39 comments
Closed

Incorporate OpenRCT2 login system #3155

IntelOrca opened this issue Mar 21, 2016 · 39 comments
Labels
feature Add something new to the game. help wanted Team would like contributors to help sorting out. multiplayer Related to the multiplayer functionality of OpenRCT2.

Comments

@IntelOrca
Copy link
Contributor

To remedy several issues with multiplayer regarding grief, we shall implement universal authentication via an official OpenRCT2 user login database. Servers can choose to only allow logged in users or anonymous (no login necessary) users.

I have already designed and implemented a secure login protocol with a central server. The work left is implementing the login system and server authentication into the game. This will be for 0.0.5.

@wolfreak99
Copy link
Contributor

Would it help if i was to build a design some ui windows / controls, such as a login window with a username / password box? that way you can have the design already there and all you'd need to worry about is plugging in the functionality?
I'm offering it because one of my best skills (in my opinion) are designing interfaces and layouts. I'm not good with this games core functionality, unfortunately, but i can beast a window design. i'll work up something and if you like it, you can feel free to use it.

@Krutonium
Copy link
Member

Just a suggestion for the server side, don't allow email addresses with the + character in them, because you can use the same email 9000 times with that.

@devnoname120
Copy link
Contributor

@PFCKrutonium Better, only allow one use of an email address, no matter if it contains “+” or not.
I use “+” for filtering emails, and I am probably not the only one that does it.

@IntelOrca
Copy link
Contributor Author

And for gmail addresses, full stops should be ignored. But e-mail validation is related to the API server and not the game.

@Krutonium
Copy link
Member

True, but I can't see any other place where bringing it up would help.

@IntelOrca
Copy link
Contributor Author

I made this issue mostly so that I could close all of those other issues that were more or less the same problem and to clear up other discussions about how to deal with the problems. I will look at this again when we have released 0.0.4.

@Krutonium
Copy link
Member

That seems fair.

@GingerAdonis
Copy link
Contributor

Not sure why this should be implemented. People can create new accounts easily, I assume. Although having a central login is nice, it sort-of closes the openness of the project.

@Ryder17z
Copy link

@JarnoVgr
There will still be the option of anonymous/no login servers

@GingerAdonis
Copy link
Contributor

I understand that @Patrik356b . But I fail to see the exact benefit of moving to centralized accounts. But does it prevent from happening? People can easily recreate an account.
Hardware serials/IDs as extra identification method is a better method, in my opinion. And/or server-based accounts. Just not centralized.

@IntelOrca
Copy link
Contributor Author

@JarnoVgr user accounts have lots of other advantages... think about it. It can be linked to the forums, the content submission system, CoasterCloud. It can record statistics against your name, it stops people from spoofing your user name and allows you to transfer that between different computers and devices.

You said people can easily re-create an account, but how many accounts will someone create, verify and then get blocked before they get bored? The extra effort they have to go through will put them off (significantly reduce the amount of people who would otherwise).

Hardware serials/IDs as extra identification method is a better method, in my opinion.

What stops someone from editing the source code to mock this?

@Reaxku
Copy link

Reaxku commented Mar 22, 2016

@IntelOrca I would also like to voice my concerns about having a central login authority, while it would be optional, there is near no question in my mind that it would become the de-facto standard upon deployment. This would put a slight damper on the openness of the project a bit in my eyes.

That said, I don't think hardware id would solve the problem either, especially in an open source project, Instead I'd favor a system where each client and server generates a unique id, the server sends their unique id to the client, then client then hashes its own uuid together with the server's and sends it back. Using this hashed token the server can uniquely identify previous clients and be able to set permissions accordingly; however, this system could not be used for banning clients as a client could simply change their uuid (which would also reset their granted permissions to default). To resolve that, ip bans could be added instead.

Either way, there seem to be solutions to the problem of identifying clients uniquely for the purposes of saving permissions, verifying identity, or banning, that do not include a central login authority and keep the power more so in the hands of those who run servers.

As for why nobody is editing the source to implement such changes, I think the most likely answer is that those who want these changes are simply not able to make such edits. For example, I know that such code is beyond my own abilities (I did give it a shot though!).

Regardless, I very much appreciate the massive amounts of work you've put into the project and hate to, essentially, gripe like this. Central server or not, this project already is, and will continue to be a success in my eyes.

@Krutonium
Copy link
Member

If I may, how does OpenTTD do it?

@RollingStar
Copy link
Contributor

@IntelOrca, are you rolling you own login scheme? Or using one of the few already available (ex. OpenID, or one of the closed login schemes like Reddit or Facebook).

@IntelOrca
Copy link
Contributor Author

@RollingStar It would have to be our own if we wanted the player to be able enter their credentials within OpenRCT2. Google, Facebook, Microsoft etc. require a web browser and page / frame redirection to login via those mechanisms - we don't want to embed a browser into OpenRCT2.

@GingerAdonis
Copy link
Contributor

What about using OpenRCT2.org accounts for this? Is that something you're ok with @IntelOrca ? Could make API endpoints for both registration and login.

@Ryder17z
Copy link

That would be nice

@harrysbird
Copy link

That will be nice to add login system, you will need email verification after registering
You can only have one or two account per ip right

@GingerAdonis
Copy link
Contributor

Having 1 account per IP makes no sense nowadays. People share IP addresses very often.

@Krutonium
Copy link
Member

To add to what @JarnoVgr There are entire countries that share 2 or 3 public IP's - So it doesn't make sense as a limit.

@smiley
Copy link
Contributor

smiley commented Apr 3, 2016

True, OAuth may require a web browser to approve, but it adds other (future) benefits:

  • No password to remember
  • Cloud saves are possible through services' game API (Google Drive/Google Play Games)
  • The main login server could display servers owned/played-in by accounts connected to the same account (contacts/friends) allowing others to easily find the server they were going to join

The launcher could (optionally?) manage login status and store a token for the game to use.

Also, if the project ends up using your self-developed login system and not a hosted users system, please open source it as well.

@IntelOrca IntelOrca added the multiplayer Related to the multiplayer functionality of OpenRCT2. label Apr 7, 2016
@ghost
Copy link

ghost commented Apr 7, 2016

Someone is pretending to be me in a server and lying to me now. I think it is a great idea to add a login system to OpenRCT2 and stop using anonymous names to prevent impersonations in the future. I also want the login systems to be added to OpenRCT2 as soon as possible to prevent impostors.

@Nubbie
Copy link
Contributor

Nubbie commented Apr 7, 2016

@birthdaybrian You're not the only one :( there have been 3 other people impersonated this week (me included)

@janisozaur
Copy link
Member

janisozaur commented May 23, 2016

This will be (partially) fixed with #3699

@Krutonium
Copy link
Member

Any chance we could poke this some more? This needs to be rectified asap imho.

@Nubbie
Copy link
Contributor

Nubbie commented Nov 11, 2016

Most server hosts would appriciate :/

@ilikecorndogs
Copy link

I think that it would help out a lot, even with banning idiots and trolls

@ArcticX9
Copy link

As the acting owner of a server following a transition resulting from this very issue, I would greatly appreciate this implementation. The problem of username impersonation has hit our community hard, so much that we had to change the name and the ownership. I know that there are issues with this concept, but working it out with server operators will result, in my opinion and from what I have witnessed, in a more tightly-nit community.

@IonZer0
Copy link

IonZer0 commented Nov 11, 2016

Some of you may have noticed a small change in the server listings this morning. If you look closely, the three WhiskeyStation servers, one of the staple groups of the OpenRCT2 multiplayer community, are not currently visible. This is a small effect of a much larger underlying problem. Anonymity on the internet is a blossoming debate. Being able to hide behind a username enables a user to assume an identity and act in any way they choose, which, in of itself, is not a bad thing. However, being able to change identities and use others’ identities, is, in fact, a crucial issue. Trolling is a known issue on the Open RCT2 servers. Every server deals with it, every multiplayer user has experienced it. A minor annoyance, but is rarely accompanied alone when trolls decide to attack. The owner of WhiskeyStation supports himself by running a business using the aforementioned name. He’s been operating successfully for almost a year now. No other platform has given him nearly as much trouble as his OpenRCT2 servers. Trolls, who will remain nameless, have continuously hijacked him via rapid login/logouts causing desyncing and crashing, verbal harassment, and in extreme cases, Denial of Service attacks on his internet, damaging the reliability of not only his servers, but his entire business. By giving them the ability to assume false identities rapidly, they were able to overwhelm moderators by joining with different names every time they were banned on the previous ones. They have now started to travel to different servers under his name and harass other players. Now, he has had to remove his name and servers for fear of his business’ integrity. This is a serious issue that needs serious consideration.

For any further questions, and direct contact to the new operator of the community in question, please contact: arcticx9@gmail.com

@Ziscor
Copy link

Ziscor commented Nov 11, 2016

Being an admin for Man Of Teal I agree with all men above me. This feature would be very much appreciated, if only as an option. I request you consider putting this back on the table.

@ZxBiohazardZx
Copy link
Contributor

So anti-griefing is now bigger then privacy policy?

we have measures to prevent griefing: a password, kick/ban and possibly whitelist or usergroups.

Like in OTTD one might consider banning the GUID of the game and instead of having a playerID, we can move to a globalID that can be generated as other logins have it.

stop ruining a perfect game with databases, passwords and users.

if i ban player X does that mean X is banned on all servers? will he be auto-blacklisted? if yes then what prevents player Y from mass-banning everyone on his server to just annoy people?

aka what does this feature REALLY add?

@Nubbie
Copy link
Contributor

Nubbie commented Nov 11, 2016

@PFCKrutonium I don't think you should tell others to 'poke' this, it wouldn't speed up anything, just create discussions in a thread with nothing about it.

@IonZer0
Copy link

IonZer0 commented Nov 11, 2016

@ZxBiohazardZx

  1. "So anti-griefing is now bigger then privacy policy?"
    Never claimed it was. This is an issue that has been boiling up among various servers but has just now come to the forefront because of the closure of a major server.
  2. "stop ruining a perfect game with databases, passwords and users"
    While the devs have done an outstanding job on the game, there are still small bugs to be worked out. Does it have the potential to be a 'perfect' game? I believe so.
  3. "if i ban player X does that mean X is banned on all servers"
    a: No, just giving server owners the ability to ban players via IP on their own servers. If someone wants to act normally on one server, and obnoxiously on another, then they'd still be able to stay in the first one.
    b: Why would a successful server owner ban everyone just to entertain himself? Stop creating false scenarios, they don't help your point.
  4. "aka what does this feature REALLY add"
    This feature would add accountability for users. Nobody could go server to server and harass the users and owners for hours on end (which is what's happening now). If they did, they'd be banned; only now, without the possibility of entering 3 seconds later with a different name.

@ZxBiohazardZx
Copy link
Contributor

"aka what does this feature REALLY add"
This feature would add accountability for users. Nobody could go server to server and harass the users and owners for hours on end (which is what's happening now). If they did, they'd be banned; only now, without the possibility of entering 3 seconds later with a different name.

so in fact you need an IP ban. no complex login scheme with usernames passwords, you just need a way to prevent user X from rejoining after he got kicked/banned for griefing

@Margen67
Copy link
Contributor

Also you can just delete your keys to get around a ban.
Another flaw of the key system is that if you lose your keys somehow (OS reinstall, etc) you lose all your permissions on other servers.

@ZxBiohazardZx No. IP bans are just as easily circumvented as keys are.
A username and password system would work better.
Even if it CAN be bypassed with duplicate accounts it won't be nearly as bad as the current situation.

@ZxBiohazardZx
Copy link
Contributor

Also you can just delete your keys to get around a ban.
Another flaw of the key system is that if you lose your keys somehow (OS reinstall, etc) you lose all your permissions on other servers.

@ZxBiohazardZx No. IP bans are just as easily circumvented as keys are.
A username and password system would work better.
Even if it CAN be bypassed with duplicate accounts it won't be nearly as bad as the current situation.

then make a non-editable file that logs your "status" with servers (ServerIP, Banned, other multiplayerhased info) and put that in a storage that cant be changed?
(key-dependancy or so)

@ZxBiohazardZx
Copy link
Contributor

client identification methods can be done in many ways that does not directly require another (easily changable) login.

what prevents me from creating 10 accounts to grief with in the new system? an email is as easy to get as a new nickname atm

@Margen67
Copy link
Contributor

You could create alts in the new system but it would take longer, and not be as easy as just deleting the keys then restarting the game and rejoining.

@OpenRCT2 OpenRCT2 locked and limited conversation to collaborators Nov 11, 2016
@IntelOrca
Copy link
Contributor Author

IntelOrca commented Nov 11, 2016

I will implement this in due course, but I would like to release 0.0.5 first. The team have already decided that central authentication is the best solution to the problems with multiplayer.

@IntelOrca IntelOrca added the help wanted Team would like contributors to help sorting out. label Oct 12, 2017

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
feature Add something new to the game. help wanted Team would like contributors to help sorting out. multiplayer Related to the multiplayer functionality of OpenRCT2.
Projects
Development

No branches or pull requests