问题标签 [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.
oauth-2.0 - Instagram API 访问令牌刷新?
我不确定这是否只是谷歌 API 独有的,这是不合理的,但在 OAuth 谷歌开发者游乐场中,可以提供访问令牌并接收永不过期的刷新令牌。我已经做到了这一点并在我的代码中实现了它,但我想知道,Instagram 访问令牌有这样的东西吗?
随着最近在 api (2016 ->) 中发生的变化,我没有发现任何问题,因为我相信令牌没有过期。
谢谢你,如果我似乎遗漏了一些明显的东西,我很抱歉。
amazon-web-services - idtoken 上的 AWS Cognito 超时
我是 AWS cognito 身份提供商的新手,我正在尝试解决应用程序在一小时后变得“无响应”的问题。
我已经找到了以下异常:
无效的登录令牌。令牌已过期 xxx > yyy
话虽如此,我正在尝试使用刷新令牌来更新我的 ID/访问令牌。
我正在尝试使用以下方法:
我将以下内容作为参数发送:
但是,我收到以下错误以及 null AuthenticationResultType 对象
- 我在刷新 idtoken 的正确道路上吗?
- 为什么我对 adminInitiateAuth 的调用失败?
谢谢
amazon-web-services - AWS Using refresh token Javascript
Are there any examples on how to use the refresh token to get a new idtoken on aws cognito?
I´m trying to use http://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html
But then, it requires "developer credentials".
I think I was able to set that on Cognito following http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html#associate-developer-provider
Now I don´t know what else do I need to do on my code in order to handle such a developer credential?
This is the message I´m getting:
"User: arn:aws:sts::540029582710:assumed-role/Cognito_Skyline_User_Pool_ProdAuth_Role/CognitoIdentityCredentials is not authorized to perform: cognito-idp:AdminInitiateAuth on resource: arn:aws:cognito-idp:ap-northeast-2:540029582710:userpool/ap-northeast-2_7wGKApTQV"
Thanks
authentication - 为什么我们不应该使用 access_token 作为 refresh_token
我了解使用访问/刷新令牌的身份验证过程是这样的:
- 交换 refresh_token 的用户名/密码
- 使用 refresh_token 获取 access_token
- 使用 access_token 请求(不需要数据库调用)
- 如果 access_token 已过期 -> 使用 refresh_token 获取新的(需要数据库调用)
管理/撤销访问的流程:
- 交换 refresh_token 的用户名/密码
- 在数据库中存储 refresh_token
- 使用 refresh_token 获取 access_token 时检查 DB 中的已撤销标志
- 通过设置撤销标志来阻止
数据库交互:只需要刷新令牌。即频率取决于access_token 的生命周期。
用户体验:需要登录
- 第一次访问
- refresh_token 已撤销
- refresh_token 已过期
安全隐患:
- refresh_token 被盗:在手动撤销或很长时间之前易受攻击
- access_token被盗:短时间内易受攻击。无法撤销
- 注销:access_token 在过期/无法撤销之前保持有效
没有 refresh_token:+没有长期存在的漏洞 -Bad UX。用户需要经常登录
现在我想知道为什么我们不能只使用 access_token 作为 refresh_token:
- 交换 access_token 的用户名/密码
- 在数据库中存储 access_token
- 对所有请求使用 access_token(无数据库调用)
- 过期时:如果设置了撤销标志,则检查 DB。如果不是 -> 创建新的 access_token 并为旧令牌设置撤销。(可选地,在到期后只允许 x 时间。这相当于 refresh_token 的到期日期)
现在 UX/security/DB_call_frequency 似乎是相同的。那么为什么我们需要一个单独的 refresh_token 呢?
我能看到的唯一论点是,将它们分开可以降低 refresh_token 被盗的风险,因为它的发送频率较低。
javascript - Azure AD 使用刷新令牌访问使用 javascript 的访问令牌
我正在使用 Azure AD 来获取访问令牌。我正在使用 Javascript 和 HTML 让用户登录,并在成功登录后获得访问令牌和过期时间。现在我期待在过期时间完成时获得更新的访问令牌,我任何人都可以在 javascript 中为我提供一个解决方案,它使用刷新令牌来获取新的访问令牌。
angular - 离子拦截器利用使用 sqLite 异步存储的刷新令牌
我已经成功开发了一个使用刷新令牌(刷新令牌然后重试http请求)的angular2拦截器,其中access_token和refresh_token都存储在localStorage中。
以下是在我的“AuthService”中刷新令牌的代码:
以下是我继承的用作拦截器的 http 类的一部分:
现在,我一直在尝试在 Ionic 中开发相同的东西,但是,由于 Ionic 存储的异步特性,我无法让它工作。从存储中检索值并不像 那样简单localStorage.get(item)
,您必须执行以下操作:storage.get(item).then(v => do stuff...)
。
我正在寻找创建一个 AuthService 和一个继承的 Http 类作为拦截器;它执行以下标准程序:
- 从存储中读取访问令牌,基于它构建 requestOptions 并尝试请求。
- 如果结果为 401,它会从存储中读取刷新令牌,并使用它获取新的访问令牌并将其存储在存储中。
- 使用新的访问令牌尝试原始 http 请求
- 如果仍然失败,则将用户重定向到登录页面。
java - ADAL4j java - 使用带有用户名和密码的刷新令牌来获取访问令牌
我正在使用 java 后端服务器连接到启用 Azure AD 的 API。我可以通过以下 java 代码获取访问令牌。
请注意,API 提供者当前不支持客户端凭据。
我的问题是,使用上面代码中收到的刷新令牌来获取新的访问令牌。
ADAL4j java 库似乎没有任何方法支持这一点。 java库的文档
但是在 .NET 库中有一些方法,例如,
用于在不提供任何凭据的情况下刷新访问令牌。
为什么 Java 库中没有提供这些方法?有什么限制吗?什么是可能的解决方法?
提前致谢。
c# - Asp.NET Web API - 访问令牌刷新期间的多个请求 - 未经授权的 401
我有一个应用程序向 API 发出多个请求以呈现页面的某些部分。
当用户的访问令牌过期时,第一个请求发送刷新令牌,获取新的访问令牌并更新存储它的 cookie,但由于请求是异步的,有时在更新 cookie 之前,其他请求会发送旧的,现在无效的令牌,所以API 返回401 Unauthorized
.
我该如何处理?有没有办法让其他请求等待访问令牌刷新?
unity3d - Websocket 刷新令牌
我目前正在使用 Unity 开发多人回合基础卡牌游戏。多人架构将使用 websocket (NodeJS Socket.IO),出于安全考虑,我在访问令牌过期后使用带有刷新令牌的 JWT。
每次当我向 websocket 发出请求时,我都会发出请求以及访问令牌。当访问令牌过期时,我应该使用刷新令牌撤销新的访问令牌。我关心的是刷新令牌处理。我是否应该向客户端发出请求以获取刷新令牌并将刷新令牌重新发送回 websocket 以更新访问令牌?要更新访问令牌,我将通过数据库验证刷新令牌以确保令牌有效。我想知道整个过程是否合适并导致任何延迟(滞后),因为它是实时多人游戏。
这里有人可以提供一些建议吗?
oauth-2.0 - 刷新令牌必须作为 setAccessToken Youtube API 的一部分传入或设置
我有以下代码
但是一个小时后,如果我尝试使用 Youtube Data API,我会收到以下错误,
请帮忙。