这个问题我已经有一段时间了。我正在尝试通过steam按钮添加一个登录,该按钮在登录时不仅检索用户的id,还验证签名。steam使用openid 2.0。

我遵循了文件

here

. 我已经仔细地遵循了这些步骤,花了一天中的大部分时间来尝试解决这个问题。我的代码是:

let s = data['openid.signed'].split(',');

let x = Buffer.from(s.map(x => `${x}:${data['openid.' + x]}`).join('\n') + '\n', 'utf8');

let c = crypto.createHash('sha1').update(x).digest('base64');

console.log(x.toString('utf8')); // This is the key:value string

console.log(c); // This is the final result; the generated signature

其中data是来自openid提供者的响应。

登录中

x

(键:值对字符串)提供预期的输出:

signed:signed,op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle

op_endpoint:https://steamcommunity.com/openid/login

claimed_id:https://steamcommunity.com/openid/id/765611981[1234567]

identity:https://steamcommunity.com/openid/id/765611981[1234567]

return_to:http://127.0.0.1:8000/resolve

response_nonce:2018-12-01T17:53: [some_hash]=

assoc_handle:1234567890

但是,我生成的哈希

c

与给定签名不匹配,

openid.sig

. 请注意,我使用

\n

在上面key:value对字符串的末尾,这就是我解释文档的方式。

注意事项。

我需要身份验证的原因是我想将STEAM帐户连接到我网站上的帐户,通过STEAM登录可以让您完全访问我网站上的帐户,这意味着用户不能简单地输入另一个用户id并访问他们的帐户(重播攻击)是非常重要的。因此,我需要以某种方式验证签名。

我以前从未和openid合作过,所以请原谅我的任何愚蠢的错误。我强烈建议您阅读上面链接的文档,这样您就可以验证我所做的是正确的。

谨致问候,

openid php steam,Steam OpenID签名验证相关推荐

  1. 计算机名称 steam,Steam电脑配置排名:前19名都是N卡

    原标题:Steam电脑配置排名:前19名都是N卡 现如今的显卡市场上,NVIDIA无疑占据着绝对主动和领导地位,那么N卡到底普及到了什么程度? Steam今天更新了每月一次的硬件调查结果,虽然数据都来 ...

  2. linux用独显运行steam,Steam使数以千计的Windows游戏可以在Linux上轻松玩

    Steam使数以千计的Windows游戏可以在Linux上轻松玩 Mark Do 2018年9月5日 暂无评论 阅读 5,183 次 众所周知,Linux游戏库只是Windows游戏库中的一小部分.这 ...

  3. [Unityamp;amp;Steam]Steam各种用户数据查询

    Steam销售数据查看 [付费]steamspy 查看各游戏销量(总销量.各阶段销量.各地区销量.游戏时间等等): Games sales:(强力推荐) http://steamspy.com/ 小黑 ...

  4. 微服务openid等_使用OpenID Connect在Quarkus中保护微服务

    微服务openid等 This is the fourth part in a series on building a microservice from the ground up with Qu ...

  5. java获取openid_JAVA获取微信小程序openid和获取公众号openid,以及通过openid获取用户信息...

    https://www.cnblogs.com/lxwt/p/10154540.html?tdsourcetag=s_pcqq_aiomsg 一,首先说明下这个微信的openid 为了识别用户,每个用 ...

  6. html5上传steam,Steam 上的 HTML5 Javascript Game Engine

    不支持简体中文 本产品尚未对您目前所在的地区语言提供支持.在购买请先行确认目前所支持的语言. 购买 HTML5 Javascript Game Engine 关于这款软件 WEB GL ENGINE ...

  7. 微信公众号开发:获取openId和用户信息(完整版)

    注:之前总结怎么进行本地公众号开发调试,时间一长忘记开发配置却忘了,所以这里记录一下公众号开发配置,方便快速上手. 目录 开发前服务器配置 网页授权获取用户基本信息 snsapi_base snsap ...

  8. 微擎获取openid_微擎中使用微信之门接口,让订阅号也能直接以网页的方式获取OpenID...

    开发微擎模块的时候 常会遇到一个问题: 只有服务号才能直接在网页上获取OpenID, 如果是订阅号就只能从对话消息中获取OpenID然后传到网页, 虽然微擎有个功能叫做"借用oAuth权限& ...

  9. 微博平台StatusNet研究(3):友好URL与OpenID支持

    StatusNet研究系列 StatusNet研究(1):介绍 StatusNet研究(2):基本安装 StatusNet研究(3):友好URL与OpenID支持 StatusNet研究(4):快速安 ...

最新文章

  1. tomcat源码_从源码角度讲Tomcat在SpringBoot 中是如何启动的?
  2. String Split 和 Join
  3. hdu 4533(树状数组区间更新+单点查询)
  4. C# 日志管理框架:Common.Logging和log4net
  5. python分词代码_中文分词--最大正向匹配算法python实现
  6. MyEclipse Servers视窗出现“Could not create the view: An unexpected exception was thrown”错误解决办法...
  7. 创邻科技张晨:智能物联为图数据库的迅速发展提供了良好应用场景
  8. CentOS 安装MySQL5.7 源码方式安装
  9. 金山词霸2006常规窗口不见了!只能看到最大化的的原因
  10. Oracle数据库备份与还原
  11. 技术评审之技术文档的规范模板
  12. 手把手教你批量保存花瓣图片到同一目录的技巧
  13. 自动文本摘要任务背景调研
  14. 电信系统服务器地址,电信高速dns服务器地址谁知道?
  15. Hystrix熔断器
  16. 【项目实战——emos在线办公系统】:组件之间的相互使用、请假页面、添加请假组件之间的关系梳理、model和v-model
  17. 用JBE修改Java字节码
  18. teechart的addarray_C# TeeChart的一些用法
  19. 遗传算法求解一元函数最大值||python
  20. 2021年电工(初级)考试内容及电工(初级)证考试

热门文章

  1. 进入3.0时代,紫光云致力做好数字化转型的底座
  2. VC++ 防火墙 Win7 XP MFC
  3. android金额大小写转换,Java/android 金额 数字转成大写汉子
  4. Tableau豆瓣电影项目实战作业 Day1
  5. yolov5 训练时报错踩坑(不定时更新)
  6. 1. Java基础语法
  7. pyautogui自动化控制鼠标和键盘操作
  8. 解决linux有时候不能粘贴
  9. spring容器destory时没有调用destory-method解决方法
  10. JsonParseException: Unexpected character (‘sss‘ (code xxx)): was expecting a colon to separ