我已经开发了一个游戏客户端(Android)和服务器,使用的是团结和node.js。
服务器的登录功能是用passport.js实现的.很简单,所以我什么都不担心。我应该通过弹出应用程序浏览器来实现游戏中的登录功能。
但事实证明,android游戏需要使用"Google“登录谷歌。在这种情况下,我搞不懂如何使用passport.js。
我所知道的GoogleOAuth2.0登录的顺序大致如下。
我想知道如何使用step3实现passport.js及以后的应用。我是否可以使用passport.js来实现这一点,只使用"GoogleStrategy“配置?多么?
发布于 2017-06-27 05:37:01
我自己找到了解决办法。我所知道的有些不对劲。GoogleOAuth2.0的顺序和上面一样正确,除了一件事。
我想我可以通过使用"GetIdToken()“api来获得”授权代码“(GetIdToken()api)中的”google plugin-for统一性“。但是,如果我想获得“授权代码”,我必须使用"GetServerAuthCode()",而不是使用"GetIdToken()“。这种描述是在ReadME的“谷歌-游戏-插件-统一”的github。我没有详细阅读是我的错。
IdToken和AuthCode不一样,这是我不知道的部分。(请参阅https://github.com/playgameservices/play-games-plugin-for-unity#retrieving-server-authentication-codes的“检索服务器身份验证代码”)
现在,游戏客户端可以很好地使用"GetServerAuthCode()“获取”授权代码“,而游戏客户端可以按下面的方式将此令牌发送到游戏服务器(使用get,但谷歌建议使用post)。
var _url =“YOUR://WEBAPP/REDIRECTION/URL?_url=”+_url
游戏服务器将获得这个url,服务器可以使用"passport.authenticate“,这与从web浏览器获得重定向url的方式相同。
如果您的用户auth info(android应用程序和web应用程序)都在同一个Google控制台项目中注册,他们将共享auth信息,登录过程将执行与使用浏览器案例相同的操作。
https://stackoverflow.com/questions/44754177
复制相似问题