我已经构建了两个独立的游戏,我希望它们共享同一个登录系统。所以,如果你有一个帐户,你使用两个游戏。
但当他们第一次注册和登录时,我不想将他们重定向到集中系统,因为我希望注册/登录过程尽可能简单,因为我担心他们会失去兴趣。
因此,我考虑让他们正常登录网站,然后使用cURL
通过构建API将请求发送到集中式网站。
然而,我想知道这是否是一个好方法,因为没有一个网站在同一个网络上。我想我将不得不建立一个集中登录系统,它只接受来自游戏所在域的请求。但还有其他事情我必须担心吗?例如,我应该如何发送密码?因为给他们发纯文本似乎是一个可怕的主意,所以我想我必须把它们放在一边。我想我必须制作一个用户表的小副本,例如username
和user_id
。
我不想使用OpenID
或Facebook Connect之类的东西,因为这确实意味着重定向到外部系统(这对用户体验不利),而网站上玩家的平均年龄约为14岁,所以他们对OpenID
一无所知,我不想强迫他们将他们的Facebook帐户连接到我的网站。
如果我的英语不清楚或写得不好,我也很抱歉,我不是本地人,很难用正确的方式表达自己。
提前感谢!
API将是一个很好的方法。然而,如果您实现这样一个API,您应该记住以下几点:
- 对API使用强Auth-Keys。你可以通过服务器IP过滤请求,但这会起作用,但我不建议这样做,因为你可以发送被操纵的数据包(IP欺骗)
- 你可以在游戏服务器上散列密码,但如果从客户端到服务器的连接没有加密,密码已经通过互联网发送,如果攻击者想要他的或她的密码,他会从客户端的未加密连接开始。因此,请确保对每个具有关键用户数据的连接都使用SSL
您有两个选项选项1:将两个应用程序与CAS集成。CAS是一种简单的基于协议的身份验证体系结构,专为单点登录场景设计。这肯定会节省你的大量时间,并进行最小限度的开发修改。
选项2:在其中一台服务器上有一个独立的用户表,并根据该表发出身份验证请求。问题是在游戏过程中保持个性,你可以通过会话和cookie来做到这一点。