问题标签 [refresh-token]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 为什么 OAuth v2 既有访问令牌又有刷新令牌?
OAuth 2.0 协议草案的第 4.2 节表明,授权服务器可以返回一个access_token
(用于对资源进行身份验证)和一个refresh_token
,它纯粹用于创建一个新的access_token
:
https://www.rfc-editor.org/rfc/rfc6749#section-4.2
为什么两者都有?为什么不只做access_token
最后一个只要 therefresh_token
并且没有 arefresh_token
呢?
authentication - 刷新令牌有什么意义?
我不得不承认我有这个问题很长时间了,从来没有真正理解过。
说身份验证令牌就像保险箱的钥匙,当它过期时就不再可用了。现在我们得到了一个魔法刷新令牌,它可以用来获取另一个可用的密钥,以及另一个……直到魔法密钥过期。那么为什么不将身份验证令牌的到期时间设置为与刷新令牌相同呢?为什么要打扰呢?
它的正当理由是什么,也许是历史原因?真的很想知道。谢谢
authentication - “刷新令牌”的目的是什么?
我有一个与 YouTube Live Streaming API 集成的程序。它在计时器上运行,因此我相对容易编程以每 50 分钟使用刷新令牌获取新的访问令牌。我的问题是,为什么?
当我通过 YouTube 进行身份验证时,它给了我一个刷新令牌。然后,我使用此刷新令牌大约每小时获取一次新的访问令牌。如果我有刷新令牌,我总是可以使用它来获取新的访问令牌,因为它永不过期。因此,我看不出这比从一开始就给我一个访问令牌而不是打扰整个刷新令牌系统更安全。
c# - JWT refresh_token 包含什么?
根据我在网上找到的一些示例,我为我的 Asp.net Core REST 服务构建了一些 JWT 中间件。我知道响应看起来像:
我了解如何创建 access_token:
问题是如何创建 refresh_token?我搜索了高低,找不到太多关于它的文档。基本上每个参考资料都说“它是存储在数据库中的令牌,具有更长的 TTL,您可以从中创建新的 access_token ”。
那么 refresh_token 是否与 access_token 完全相同,只是 TTL 更长,并且它针对数据库验证了额外的步骤?
我见过的一些示例 JWT 响应似乎 refresh_token 要短得多。我的 access_token 使用 RSA515 使用证书签名,所以字符串有点长......
jwt - 使用有效的用户访问令牌调用 Box API
我正在使用 JWT 通过 Box API 进行身份验证,因为我不希望我的用户必须使用他们的凭据显式登录(就像使用 OAuth2 一样)。
我的问题是用户访问令牌仅在 60 秒内有效。
那么,这是否意味着每次我向 Box API 发出请求(例如 - 遍历某些文件夹以查找特定文件)时,我都需要请求新的用户访问令牌以确保它仍然有效?
据我了解,JWT 没有刷新令牌,所以这似乎是唯一的解决方案?
60秒是很短的时间。我不想跟踪每个请求的时间,所以似乎唯一的其他选择是必须为每个 API 请求重新创建令牌。这似乎很荒谬。
go - Golang OAuth 客户端和刷新令牌
我已经为 Go 配置了针对 Google 的 OAuth。然后,我使用访问令牌对 gmail api、联系人 api、驱动器 api 等进行请求。这些需要作为实际访问令牌的字符串,而不是 object *oauth2.Token
。
访问令牌有效时一切正常。一旦它无效,我就无法访问数据。这是有道理的,因为在对服务进行查询之前,我需要使用刷新令牌来获取新的访问令牌。
我的理解是,*http.Client
如果需要,您从 OAuth 令牌创建的将自动刷新新的访问令牌。
但是,我不确定如何从客户端获取最新的访问令牌,然后将其用作GET
针对 Google API 的请求的一部分以验证服务。
所以总结一下:
如果客户端处理刷新令牌,那么我需要使用客户端获取访问令牌以使其有效。你是怎样做的?我已经研究过使用config.TokenSource(ctx, tok)
,然后我可以调用 TokenSource ,但这不需要客户端,因此据我所知,令牌没有刷新。
elixir - Guardian - 使用刷新令牌“记住我”
我正在尝试在以下 GitHub 问题中实施@hassox 给出的建议:
https://github.com/ueberauth/guardian/issues/142
用户登录后,我将生成一个令牌并将其存储在具有 ttl 的 cookie 中:
此外,我的管道Guardian.Plug.LoadResource
中有一个 Plug(放在下面) ::browser_auth
这是 Plug 目前的样子:
如何创建新令牌,将其存储在会话中并继续访问所需页面,而不是重新路由到登录页面?
ios - 当我有多个资源时如何使用 ADAL 库
如何使用 ADAL 在 iOS 中启用多资源支持。在这么多网站中进行了搜索,但发现很难理解具有多个资源的流程,使用 Refresh Token 和 Access Token。谁能简要解释一下这个流程?
根据图书馆,ADTokenCacheStoreItem 将有 accessToken 将为零,以防项目存储多资源刷新令牌。但是每当我调用acquireTokenWithResource:clientId:redirectUri:我都得到访问令牌和刷新令牌。我怎么能告诉图书馆我的是多源请求。我需要做任何设置吗?
/*!收到的访问令牌。应该为零,以防项目存储多资源刷新令牌。/@property NSString accessToken;
而且,我是否需要每次调用acquireTokenWithResource:clientId:redirectUri 之前调用每个API 有或没有不同的端点。或者我是否有责任缓存/存储每个资源的访问令牌和到期日期?另外我如何在多资源情况下处理静默登录?
security - 攻击者可以破坏 access_token 和/或 refresh_token 的各种可能方式是什么?
几乎每个论坛都有很多关于 Web 应用程序安全性(不考虑移动应用程序)的讨论,特别是使用 oauth2 和 jwt。每个人都发表他们的评论/回答这个和那个,blah..blah..blah 关于安全令牌(假设几乎所有有价值的网络都可能在“2016”接近尾声时变得无国籍)。说真的,我不知道这是否那么容易,我发现每个人都在针对想象中的攻击者写下他们的答案,就好像攻击者窃取用户的客户端 Web 应用程序 access_token 和 refresh_token 一样轻松和容易。攻击者实际上可以通过哪些可能的方式破坏您的 Web 应用程序在客户端发出的 access_token 和 refresh_token?这种妥协是否也取决于使用网络应用程序的用户?攻击者窃听客户端和授权服务器之间的任何通信的难易程度如何?如果有人想展示,任何开放代码示例都将受到高度重视。寻求切中要害的答案,而不是厌烦关于 Web 应用安全性的讨论。如果碰巧是Quora之类的问题,我想道歉。
api - Outlook API v2.0 刷新令牌?
我正在使用 Outlook api v2.0
我可以获得访问令牌,而且效果很好!
我的问题是访问令牌仅持续 1 小时,我找不到任何文档来获取 v2.0 的刷新令牌...
有人知道如何进行吗?
谢谢