Authentication 注销ServiceStack后强制浏览器重定向的最佳方法是什么
当前,当用户注销时,注销过程正常工作,但用户保持在同一屏幕上,因此仍然可以看到安全数据Authentication 注销ServiceStack后强制浏览器重定向的最佳方法是什么,authentication,redirect,
servicestack,logout,Authentication,Redirect,
servicestack,Logout,当前,当用户注销时,注销过程正常工作,但用户保持在同一屏幕上,因此仍然可以看到安全数据 注销ServiceStack后强制浏览器重定向的最佳做法是什么?服务器不可能强制客户端重定向。实际上,在您注销后,由客户端强制执行数据的安全性。如果在会话过程中,客户机已经被安全数据所信任,那么您需要相信,当会话结束时,客户机将对其进行适当的安全保护 虽然您可以让ServiceStack在注销时向客户端发送重定向头,但并不需要客户端实际执行该操作 如果JavaScript客户端向ServiceStack发出A
注销ServiceStack后强制浏览器重定向的最佳做法是什么?服务器不可能强制客户端重定向。实际上,在您注销后,由客户端强制执行数据的安全性。如果在会话过程中,客户机已经被安全数据所信任,那么您需要相信,当会话结束时,客户机将对其进行适当的安全保护 虽然您可以让ServiceStack在注销时向客户端发送重定向头,但并不需要客户端实际执行该操作 如果JavaScript客户端向ServiceStack发出AJAX请求以注销,重定向响应不会影响显示安全数据的页面,因为AJAX请求在显示数据的页面之外的单独范围内有效运行,因此页面不受重定向的影响。因此,重定向是无用的,除非客户端显式地提供了处理此类事件的机制 客户机必须负责避开安全数据本身。最佳做法是: 在注销操作调用的成功方法中,您应该:
- 处置内存中的任何敏感数据。i、 e.显示数据的JavaScript变量/DOM元素
- 删除会话cookie
- 重定向到登录
$http
服务执行此操作,则可以使用success
回调,如下所示:
$http({method:'POST',url:'/auth/logout',data:{provider:'logout})。成功(
函数(数据、状态、标题、配置){
$scope.someValue=null;//从作用域中删除敏感值(尽管应该通过重定向到其他状态来清除敏感值)
$cookieStore.remove('ss-id');//删除cookie
$state.transitiono('login');//重定向到登录状态
}
);
本例假设您已注入$http、$cookieStore、$state提供程序
tl;博士
- 客户端必须强制执行安全性。服务器重定向只应被视为对客户端的建议
- 使用注销请求操作的成功回调来删除会话cookie,处理内存中的任何值,并从数据中重定向
希望这能有所帮助。Hello:)您对浏览器重定向问题有何想法?谢谢史考特,谢谢你的提醒;)。你的回答很好地解释了这一点。我的主要问题是使用javascript清除数据,而javascript显然可以在浏览器中被拦截和修改。我接受你的观点,不管怎样,这个客户在某个时候是值得信任的。我已经实现了一个http身份验证拦截器,这样即使某些数据仍然可见,对标记为[Authenticate]的服务的任何后续调用都将导致显示一个登录表单。