RESTful身份验证的含义是什么?它是如何工作的?我无法在Google上找到一个很好的概述.我唯一的理解是你在URL中传递会话密钥(remeberal),但这可能是非常错误的.
对不起,也许这是许多其他人提出的问题,但我真的很困惑,因为一些参考文献有很多不同的方法.
我使用React SPA,Express,Express-session,Passport,JWT
所以我对Cookies,Session和JWT/Passport感到困惑.
许多网站使用cookie来存储购物车令牌.到目前为止,我已根据会话ID存储购物车数据,而不添加任何cookie.
因此,当用户访问我的网站时,我会将其与他们匹配
req.sessionID,然后检索数据库中的数据,如购物车和用户会话.
所以我的问题是我需要存储cookie吗?因为我可以通过req.sessionID访问它来获取所需的数据.
第二个
我使用了一个身份验证passport-google-oauth20.在我成功登录后,数据被保存到会话中.并将其发送到客户端我必须通过URL查询发送它?token='sdsaxas'.
在这种情况下,我得到了很多意见分歧.有人将其保存到本地存储中,有人通过使用JWT将其转换为令牌将其保存为cookie.
jwt.sign(
payload,
keys.jwt.secretOrPrivateKey,
{
expiresIn:keys.jwt.expiresIn // < i dont know what is this expired for cookies or localstorage ?
}, (err, token) => {
res.redirect(keys.origin.url + "?token=" + token);
});
Run Code Online (Sandbox Code Playgroud)
结论是一切都与会话有关所以我可以用sessionID做所有事情?没有cookies或localstorage
只有通过执行一次或每次页面刷新并检索数据然后保存到redux,因为我使用React SPA
我正在开发一个具有自己的身份验证和授权机制的REST应用程序.我想使用JSON Web Tokens进行身份验证.以下是有效且安全的实施吗?
我对刷新令牌的理解是:
由于存在刷新令牌,我们可以缩短访问令牌的有效期,并经常(在访问令牌到期时)检查用户是否仍有权登录.
如果我错了,请纠正我.
我是Angular应用程序的新手.我需要一个建议来实现与Angular6(SPA)的SSO集成.我没有在网上获得完整教程的任何内容.
基本上,我是一个PHP开发人员,我做了与PHP应用程序的SSO集成.由于Angular6是UI,我不知道如何使用Angular6管理秘密和重定向以及其他事情.
所以如果有人建议我实施Angular6和SSO集成的步骤(或Github样本)会更好,那么最好的方法是什么?
好吧,我花了几天时间寻找一个合适的解决方案,以便在使用SPA时如何正确地验证用户身份.
目标:我需要通过提供用户名和密码来获取access_token.
我查看了OAuth2 Implicit Grant,但它要求用户在成功验证后批准/拒绝应用程序.它在我的情况下不起作用,因为我拥有应用程序和API.
我查看了OAuth2密码授予,这是不完美的,因为我需要公开client_id/client_secret.
我正在考虑OAuth2的原因是因为API最终会公开.
有这样做的标准方法吗?我目前的选择:
I\xe2\x80\x99m 正在尝试学习微服务架构。我对如何使用微服务和网关应用程序进行身份验证和授权感到有点困惑。
\n\n对于这种情况,假设我为电子商务应用程序提供以下服务:\n1。AccountService(管理用户帐户)\n2. 列表服务(管理应用程序上的产品列表)\n3. 购物车服务(管理用户\xe2\x80\x99s帐户中的项目)\n4. 订单服务(管理应用程序上用户订单的处理)。
\n\n从我读过的诸如此类的内容中,总是提到 \xe2\x80\x9cauth 服务器。\xe2\x80\x9d 那么,我的第一个问题是这个身份验证服务器到底是做什么的?它的名字告诉我它对应用程序的用户进行身份验证。但是,这是否意味着该身份验证服务器必须存储用户数据?那么,让存储用户帐户信息的帐户服务同时也是存储有关用户的所有信息的身份验证服务器是否有意义?或者,Auth 服务器是它自己的微服务吗?如果是这样,它存储了哪些关于用户的信息而帐户用户没有存储?我是否应该将网关应用程序设置为身份验证服务器,因为所有请求都必须通过它?
\n\n我的第二个问题与微服务之间的授权有关。具体来说,它是如何工作的?根据我的研究,这似乎是通过存储权限的令牌来完成的。对于许多技术堆栈(无论是 PHP\xe2\x80\x99s Laravel、Adonis、Java Spring 等框架的 Javascript),OAuth 包通常都可以广泛使用。所以,我想隐藏内部工作原理的包会让我感到困惑。但是,无论如何......根据我的研究,标准做法似乎是让 OAuth 服务器(再次回答第一个问题,无论其真正含义是什么)处理身份验证,而各个微服务处理授权。具体来说,这是通过包含权限的令牌来完成的。那么,微服务如何准确验证这些权限呢?
\n\n我是否只在各个包中安装相同的 OAuth 包并使用它们的授权功能?但是,\xe2\x80\x99 是否会将服务与该技术结合起来,这违背了微服务的理念?或者,我是否也对网关应用程序进行授权,并让其他微服务只是资源存储库,因为无论如何公众都无法直接访问它们(假设其已 Docker 化)?或者其他方式?
\n\n再次感谢您的帮助。同样,我仍在尝试了解微服务架构。所以,如果这些问题听起来太微不足道或太愚蠢,我很抱歉。:)
\n