我正在使用AngularJS构建SPA,并与服务(JAVA)通信。
当用户发送其用户名/密码时,服务会同时发送回:Acces令牌和Refresh令牌。我正在尝试处理:如果收到状态为401的响应,请发送回刷新令牌,然后再次发送您的上一个请求。我试图通过包含$
http来做到这一点,但是angular不允许我在此拦截器中包含它。有什么方法可以使用我正在接收的响应参数来重新创建原始请求吗?
就像是:
'use strict';
angular.module('testApp')
.factory('authentificationFactory', function($rootScope, $q, $window, $location, CONF) {
return {
request: function(config) {
config.headers = config.headers || {};
if ($window.sessionStorage.token) {
config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token;
}
console.log(config);
$rootScope.lastRequest = config;
return config;
},
response: function(response) {
console.log($rootScope.lastRequest);
if (response.status === 401) {
if ($window.sessionStorage.refreshToken) {
//Save, request new token, send old response
//if it fails, go to login
$location.url('/login');
} else {
$location.url('/login');
}
}
return response || $q.when(response);
}
};
});
奖励问题(主要问题更重要):有2个移动应用程序也将连接到我的服务,当我从Web应用程序登录时,以及稍后从我的移动应用程序登录后,移动应用程序将使用新的刷新令牌而且我的网络应用的刷新令牌不再有效。处理该问题的最佳选择是什么?
谢谢您的时间,最好的问候
看看这个:https :
//github.com/witoldsz/angular-http-auth。
身份验证后,他使用缓冲区重播请求。
问题内容: 我正在尝试通过Node.js服务器在Android应用中实现Firebase云消息传递,但遇到了用例。 我看到了Firebase教程,该教程使用注册令牌创建设备组以向登录同一用户的所有设备发送消息/通知,我不明白的是当使用onTokenRefresh()方法刷新一个注册令牌时会发生什么。 我将如何区分要更改的令牌,因为所有令牌都属于同一用户? 更新: 好的,所以现在我被困在另一个阻塞的
刷新令牌有什么用处?按照我的理解,当访问令牌过期时使用刷新令牌,发送刷新令牌生成另一个刷新令牌和另一个访问令牌。这是因为如果访问令牌由于其持续时间短而被劫持,恶意用户实际上什么都不能做,但如果具有较长持续时间的刷新令牌被劫持,则用户将无法再受到保护。那么刷新令牌应该存储在哪里,这样才不会被人劫持呢?或者在后端应该采取哪些安全措施?
授权服务器可以给Web应用客户端和本机应用程序客户端颁发刷新令牌。 刷新令牌在传输和储存时必须保持机密性,并只与授权服务器和刷新令牌被颁发的客户端共享。授权服务器必须维护刷新令牌和它被颁发给的客户端之间的绑定。刷新令牌必须只能使用带有RFC2818定义的服务器身份验证的1.6所述的TLS 传输。 授权服务器必须验证刷新令牌和客户端身份之间的绑定,无论客户端身份是否能被验证。当无法进行客户端身份验证
刷新令牌是用于获取访问令牌的凭据。刷新令牌由授权服务器颁发给客户端,用于在当前访问令牌失效或过期时,获取一个新的访问令牌,或者获得相等或更窄范围的额外的访问令牌(访问令牌可能具有比资源所有者所授权的更短的生命周期和更少的权限)。颁发刷新令牌是可选的,由授权服务器决定。如果授权服务器颁发刷新令牌,在颁发访问令牌时它被包含在内(即图1中的步骤D)。 刷新令牌是一个代表由资源所有者给客户端许可的授权的字
我对oauth2中的刷新令牌有点困惑。如它所说的访问令牌限制了黑客可以使用用户凭证的1小时的时间窗口,刷新令牌是万岁令牌,可以用来重新创建访问令牌。 我很困惑,如果有人从cookie中窃取了访问令牌,他也可以窃取刷新令牌,并可以使用刷新令牌创建新的访问令牌,因为我在JQuery中有ajax请求(客户端)
我在自己的Web API上使用Oauth2,在Web应用程序上使用ASP.NET C#来使用该API。在我的web应用程序上,我正在进行HttpWebRequests。当我的访问令牌过期时,我调用一个方法“refreshToken”,该方法发出请求以获取新的访问令牌。这工作很好,没有问题...除了我得到的响应包含一个新的刷新令牌???我在等新的访问令牌。我甚至认为在没有再次传递凭据的情况下这是不可