Ker*_*rop 2 steam-web-api oidc-client-js
我在客户端验证时使用谷歌进行了auth,接收token_id,将其发送到服务器,服务器检索该token_id的客户帐户信息库.这很简单,因为它有记录.现在我尝试使用Steam,但实际上我在Steam文档中有4行关于OpenID .我开始使用openID浏览器lib oidc-client-js但是steam docs对我没用.openID lib需要以下字段:
Steam文档只提供提供者,密钥和域名,我真的不知道从哪里开始.
只需为您选择的语言和平台下载OpenID库,并使用http://steamcommunity.com/openid作为提供商.返回的声明ID将包含用户的64位SteamID.声称的ID格式为:http://steamcommunity.com/openid/id/
我得到CORS Header问题,因为我使用localhost而不是安全连接,我想我需要在oidc-client-js中配置其他字段:
任何帮助将不胜感激.
tl; dr:Steam不是OpenID Connect提供商
我遇到了完全相同的问题.
我尝试运行chrome并禁用CORS以查看它是否可行,我从oidc-client收到错误:
SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse (<anonymous>)
at XMLHttpRequest.s.onload (oidc-client.min.js?3809:1)
Run Code Online (Sandbox Code Playgroud)
这很容易理解,因为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>
Run Code Online (Sandbox Code Playgroud)
这显然不是JSON.
Type balise中的URL重定向到http://openid.net/specs/openid-authentication-2_0.html,可以在OpenID规范页面的过时部分找到.
此外,您可以在OpenID Connect Discovery规范页面中找到该页面
支持Discovery的OpenID提供程序必须在通过将字符串/.well-known/openid-configuration连接到Issuer所形成的路径上提供JSON文档.
这证实了Steam OpenID端点的.wellknown/openid-configuration文件不是为OpenID Connect制作的.
所以我认为可以说Steam已经停留在OpenID 2.0上并且不是OpenID Connect提供商.
现在我必须寻找一个OpenID 2.0 js客户端,或者切换到Google Sign-In.
| 归档时间: |
|
| 查看次数: |
1248 次 |
| 最近记录: |