C++ 和 C# 之间的令牌登录

本文关键字:令牌 登录 之间 C++ | 更新日期: 2023-09-27 18:37:20

这就是我要做的。我有一个 C# 的 asp .net 网站。我还有一个游戏服务器和游戏都是用C++写的。游戏服务器托管在网站所在的位置。

我想要的是让用户在点击游戏中的按钮时能够自动登录网站。也就是说,游戏向游戏服务器发出请求,以及一些如何生成可用于登录网站的令牌。

因此,服务器可能会发回类似以下内容:

www.contoso.com/tokenlogin?userid=67456353&token=576434324431fgdsastr

我知道一个简单的解决方案是在数据库中创建一个网站可以读取的令牌。如果我找不到更好的解决方案,我会这样做,但理想情况下,我想生成一个令牌,在接下来的 5 分钟内,使用此用户 ID 传递此令牌将登录该用户,就好像他们已经传递了密码一样。

我对此的一个简单想法是散列他们的密码哈希和用户名,这将起作用,但这没有时间戳。

有人对此有任何建议吗?MySQL 可以生成可以验证的令牌吗?我正在使用MySQL。我不介意使用数据库的解决方案,我只是不想要写入数据库的解决方案。

谢谢

C++ 和 C# 之间的令牌登录

生成随机令牌并将其保存到数据库(带有时间戳)绝对是最简单的解决方案。 如果失败(或进程之间的另一种通信方式),您可以做的是在服务器中生成签名令牌,这些令牌可以由您的 Web 应用程序进行验证。 因此,您的服务器将创建一个令牌,例如:

{userid: XXX, issueTime: YYY}

然后,使用经过身份验证的加密方法(如 GCM)加密此数据,对其进行 base-64 编码,并将其附加到 URL。 Web 应用解密并验证数据,如果时间戳正常,则让用户登录。 这需要在进程之间共享密钥,您不能丢失该密钥。