我已经和google一起做过,当客户端auth,接收token_id,发送到服务器和服务器检索客户端帐户信息库的token_id。这很容易,因为它是记录在案。现在我尝试使用蒸汽,但实际上我有4行关于OpenID in https://steamcommunity.com/dev的内容。我开始使用openID浏览器库oidc-客户端js,但是蒸汽文档对我没有帮助。openID库需要以下字段:
蒸汽文档只提供供应商,密钥和域名,我真的不知道从哪里开始。
只需为您选择的语言和平台下载一个OpenID库,并使用http://steamcommunity.com/openid作为提供者。返回的声明ID将包含用户的64位SteamID。声明的ID格式为:http://steamcommunity.com/openid/id/
我遇到了CORS头问题,因为我使用本地主机而不是安全连接,我认为我需要在oidc-client-js中配置其他字段:
任何帮助都将是appreciated.
发布于 2018-04-12 16:30:19
tl;dr:蒸汽不是OpenID 连接提供者
我也遇到了同样的问题。
我试着在禁用CORS的情况下运行chrome,看看它是否有效,我从oidc客户机获得了一个错误:
SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse (<anonymous>)
at XMLHttpRequest.s.onload (oidc-client.min.js?3809:1)这很容易理解,因为https://steamcommunity.com/openid/.well-known/openid-configuration如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type>
<URI>https://steamcommunity.com/openid/login</URI>
</Service>
</XRD>
</xrds:XRDS>这显然不是JSON。
Type中的URL重定向到0.html,这可以在OpenID规范页面的过时部分找到。
此外,您还可以在OpenID连接发现规范页面中发现
支持发现的OpenID提供程序必须使JSON文档在连接到发布者的字符串/.著名/openid配置所形成的路径上可用。
这证实了蒸汽OpenID端点的.著名/ OpenID配置文件不是为OpenID Connect制作的。
因此,我认为可以肯定地说,蒸汽公司坚持OpenID 2.0,而不是OpenID连接提供商。
现在我必须寻找一个OpenID 2.0 js客户端,或者切换到Google登录。
发布于 2020-04-30 04:21:40
您可以使用我的蒸汽OpenID连接提供者:https://github.com/ImperialPlugins/steam-openid-connect-provider
它还可以在DockerHub:https://hub.docker.com/r/imperialplugins/steam-openid-connect-provider上作为码头映像使用。
这允许您使用OpenID连接与蒸汽。
https://stackoverflow.com/questions/48795552
复制相似问题