对于用C++编写的特定客户端/服务器游戏,我想开发一个“登录服务器”,这样玩家就可以被游戏服务器单独跟踪。然而,我反对重新发明轮子,尽管我有不正交的需求,但我想知道我正在寻找的东西是否已经有了既定的实现。
我想要的是像OpenID这样的东西,其中没有权威的登录服务器。我希望有可能有许多登录服务器,并且游戏服务器所确定的是,使用特定用户名的特定登录服务器的人与上次使用该用户名的登录服务器的人是相同的。
既然我提到了OpenID的名字,为什么不使用它呢?它太以网络为中心了。我不想将浏览器放在我的游戏或启动器中,以便当人们想要在特定的游戏服务器上玩游戏时,将他们的凭据传递给登录服务器。实际上,最好使用对协议不可知的系统,因此登录服务器、游戏客户端和游戏服务器都可以使用游戏客户端和服务器已经就位的相同UDP基础架构进行通信。
在这一领域提供一些指导将不胜感激。我真的不希望自己想出整个系统,因为身份验证和安全性都是棘手的问题。
发布于 2013-06-22 20:09:50
OpenID将您的用户绑定到特定的服务器。例如,如果用户来自http://openid.net/theusername
,您可以存储此信息,但从此时起,用户只需使用即可使用相同的身份验证服务器,并且如果服务器出现故障,则会出现如何将帐户迁移到另一个身份(另一个提供商)的困难场景。
另一方面,如果您依赖Oauth2身份验证,并将电子邮件作为主要的识别身份,用户可以使用您设置的十几个不同的提供商(谷歌、脸书、推特、领英)进行身份验证,您可以信任提供商在身份验证之前对电子邮件进行了验证(这就是身份提供商的工作方式)。
然后我强烈推荐OAuth2。你仍然没有强加任何特定的提供商,让你的用户选择他们最喜欢的一个,但同时你有相当可靠的信息,电子邮件,它可以作为一个沟通渠道,从你的应用程序发送任何信息给你的用户。
https://stackoverflow.com/questions/17254772
复制相似问题