加入 Steam 令牌流程疑问;SteamAuthenticator.AddAuthenticatorAsync 添加了之后为什么还可以在 steam app 再次绑定令牌 #3765
Unanswered
eric-gitta-moore
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
想请教一个关于 steam 令牌的问题🙂:SteamAuthenticator.AddAuthenticatorAsync 添加了之后为什么还可以在 steam app 再次绑定令牌,而且拿到的 secret 似乎是一样的?
触发点在
SteamTools/src/BD.WTTS.Client.Plugins.Authenticator/UI/ViewModels/JoinSteamAuthenticatorPageViewModel.cs
Lines 305 to 311 in ece1768
_currentSteamAuthenticator.GetClient().AddAuthenticatorAsync(...)向 Steam 拉取待绑定令牌的数据,并在同文件的 326-332 行把返回 JSON 中的SharedSecret、SerialNumber、RevocationCode等内容写入_currentSteamAuthenticator。这个
AddAuthenticatorAsync最终会走到 https://github.com/BeyondDimension/SteamClient/blob/6f3eb5e36ca4bd89ee0c225fb89617ce90db86fa/src/BD.SteamClient/Services.Implementation/SteamAuthenticatorServiceImpl.cs#L33-L47 也就是对ITwoFactorService/AddAuthenticator/v0001的 POST 调用。返回值里包含shared_secret和server_time,SteamTools 后续用这些信息同步时间、生成 TOTP。按照代码执行逻辑:先用 SteamTools 完成 “加入 Steam 令牌” 向导(拿到恢复码和
shared_secret),这里中间会收到一个手机验证码,但是 steam++ 里面没有填写入口;之后同一个账号仍然可以在手机 Steam App (接手机验证码)再次完成官方的令牌绑定。最后手机 Steam App 和 SteamTools 生成的 TOTP 是一致的。那现在问题是,是不是
ITwoFactorService/AddAuthenticator/v0001这个接口随便调多少次,只要不走完完整的令牌添加流程,那拿到的authenticatorJson里面的 shared_secret 都是一样的?🙏所以 steam++ 才可以共享 steam 令牌
Beta Was this translation helpful? Give feedback.
All reactions