如何将OPENID身份验证集成到REST API和前端框架架构中

8
我正在制作一个网站,需要用户使用Steam登录后才能使用我的网站的其他功能。目前,Steam仅支持OPENID进行身份验证。我采取的方法如下:
  1. 用户点击“使用Steam登录”按钮

  2. 我的前端重定向到steamcommunity.com

  3. 如果用户成功登录,则用户的浏览器应重定向到我的后端,然后我将用户添加到数据库中(如果他们尚未在其中),并创建JSON web token并将其发送回我的前端。

    例如:

    myfrontend.com?token={my_json_web_token}

  4. 我的前端将保存此令牌为客户端cookie,并在每次请求服务器时将此cookie的内容发送到服务器。

我已经集成了我的应用程序,但它只是开始流行,因此我想知道我实现的方式是否有效。
谢谢

你能详细说明一下后端如何将令牌传递给前端的示例吗?以及你的技术栈是什么? - kag0
1个回答

0

这听起来像是正确的方法。

需要注意的一点是,由于使用了cookie,您需要确保有一些CSRF保护措施,但这不完全是您所问的问题。

CSRF示例


黑客怎么可能进行跨站请求伪造呢?他们必须要猜测我的JWT密码才能这样做,对吧? - mre12345
@mre12345,这里有一个非常好的解释链接(注册很简单)。如果您将令牌放在cookie中,并且浏览器自动在每个请求上发送cookie到您的服务器:那么攻击者的页面可以向您的站点发出授权请求,因为浏览器会为他们发送cookie。 - kag0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接