我们正在整个应用程序中使用Ajax调用 - 尝试在尝试执行任何Ajax请求时,如果会话已经过期,则尝试找到重定向到登录页面的全局解决方案.我编写了以下解决方案,从这篇文章中获取帮助 - 在ajax调用中处理会话超时
不确定为什么在我关心的事件中"HandleUnauthorizedRequest"没有被解雇.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class CheckSessionExpireAttribute :AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
var url = new UrlHelper(filterContext.RequestContext);
var loginUrl = url.Content("/Default.aspx");
filterContext.HttpContext.Session.RemoveAll();
filterContext.HttpContext.Response.StatusCode = 403;
filterContext.HttpContext.Response.Redirect(loginUrl, false);
filterContext.Result = new EmptyResult();
}
else
{
base.HandleUnauthorizedRequest(filterContext);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在控制器操作中使用Above自定义属性如下:
[NoCache]
[CheckSessionExpire]
public ActionResult GetSomething()
{
}
Run Code Online (Sandbox Code Playgroud)
AJAX Call(JS部分):
function GetSomething()
{
$.ajax({
cache: false,
type: "GET",
async: true,
url: "/Customer/GetSomething",
success: function (data) {
},
error: function (xhr, …Run Code Online (Sandbox Code Playgroud) 我目前正在使用rails应用程序上的RESTful Authentication插件.
有一种典型情况是用户在登录屏幕上停留足够的时间(假设为1天......),这会使认证令牌因时间过期而无效.
当该用户尝试第二天登录时(他没有刷新,他仍然使用此无效令牌),他将收到"500"http错误.使该应用程序的应用程序崩溃.
我想知道是否有可能抓住这个预期并警告用户.像任何其他无辜的网络用户一样,他只是回来再次尝试..并再次得到同样的错误......
我在Spring Boot 1.2.3 Web应用程序(以及spring-session 1.0.1,中使用spring security 4.0.1)中,但这与情况无关。
我确实有一个私有区域,以及每个用户都可以访问的所有访问区域(“ / about”,“ /”,“ / contact”,...超过20页)。(就像一个网上商店)
每当登录的用户会话到期时,Spring都会检测到无效的会话并将用户重定向到'.invalidSessionUrl(“ / session / error / invalid”)'
但是,我只想重定向到目标链接位于私有区域内还是公共区域内的情况。
我如何避免这种情况?
谢谢。
这是我的(java)配置:(在看到帖子后更新)
http
.authorizeRequests()
.anyRequest()
.permitAll()
.antMatchers("/privado/**")
.authenticated()
.and()
.formLogin()
.loginPage("/login")
.failureUrl("/login?error")
.defaultSuccessUrl("/")
.successHandler(new SessionSuccessHandler())
.and()
.logout()
.logoutSuccessUrl("/")
.deleteCookies("JSESSIONID", "SESSION")
.and()
.sessionManagement()
.invalidSessionUrl("/session/error/invalid")
.sessionFixation()
.changeSessionId()
.maximumSessions(1)
.expiredUrl("/session/error/expired")
.and()
.and()
.csrf()
.ignoringAntMatchers("/jolokia/**", "/v1.0/**");
Run Code Online (Sandbox Code Playgroud)
我该如何实现?
非常感谢。
awsapps 登录页面显示 - 不是您,是我们 我们现在无法完成您的请求。请稍后重试或
访问密钥和密钥无法连接 aws 账户,并显示错误消息:“调用DescribeCluster 操作时发生错误 (InvalidSignatureException):签名已过期:20220801T134645Z 现在早于 20220801T143813Z(20220801T144313Z - 5 分钟)”
authentication request signature expired-sessions amazon-web-services
你好 !
问题 :
我在这里搜索我的问题:
-1。Stackoverflow 由于不活动而过期:我的问题没有成功
-3。在产品服务器上提交表单时出现 Laracast 419 错误:我的问题没有成功
我的配置文件:
我的.env:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:7/Xz39xIIlpTf0mfMGD3l69NqHMbykHLFKglaAps4Rk=
APP_DEBUG=true
APP_URL=http://localhost <- here i have try with my address and my ip.
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= <- some parameter here
DB_USERNAME= <- some parameter here
DB_PASSWORD= <- some parameter here
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Run Code Online (Sandbox Code Playgroud)
我的config/session.php
<?php
use Illuminate\Support\Str;
return [
/*
|--------------------------------------------------------------------------
| Default Session Driver
|-------------------------------------------------------------------------- …Run Code Online (Sandbox Code Playgroud) 我想在客户端应用程序中实现授权,但在使用 Keycloak 的 React 应用程序中更新令牌时遇到问题。
应用程序.js
import keycloak from "../../keycloak";
const App = () => {
const handleOnEvent = async (event,error) => {
if(event === 'onTokenExpired'){
keycloak.updateToken(300).then(
(response) => {
//I want to update my existing Token
alert("response: ", response )
})
.catch(error => {
console.log("error: ", error)
})
}
}
return (
<>
<ReactKeycloakProvider
authClient={keycloak}
onEvent={(event,error) => handleOnEvent(event,error)}>
<AppRouter/>
</ReactKeycloakProvider>
</>)
}
export default App;
Run Code Online (Sandbox Code Playgroud)
标头
const Header = () => {
const {keycloak,initialized} = useKeycloak()
useEffect(() => { …Run Code Online (Sandbox Code Playgroud) 生产时出现页面已过期 419。我尝试运行php artisan clear:cache、php artisan config:cache、php artisan key:generate,并使用相同的域更改SESSION_DOMAIN,但页面仍然错误
如果我停用 CSRF 中间件,它不会出现错误,但我无法转到下一页。
我可以在本地运行它,但是当我在本地使用生产数据库时,会出现相同的错误页面。
参考:
使用ASP.NET Core MVC和Visual Studio构建您的第一个Web API
场景:
(a)使用上述链接构建.NET Core 1.0 Web API解决方案.
(b)该解决方案在调试模式下运行.
(c)用户注册
(d)该用户登录后
(e)许多小时后该用户仍然登录
仍然在同一个Debug会话中,执行此代码:
@using Microsoft.AspNetCore.Identity
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
@if (SignInManager.IsSignedIn(User))
{
<form asp-area="" asp-controller="Account" asp-action="LogOff" method="post" id="logoutForm" class="navbar-right">
<ul class="nav navbar-nav navbar-right">
<li>
<a asp-area="" asp-controller="Manage" asp-action="Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
</li>
<li>
<button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button>
</li>
</ul>
</form>
}
Run Code Online (Sandbox Code Playgroud)
我未满足的期望是上述用户的登录会超时; 然而,Hello *example user*!又Log off被渲染到导航栏 ; 单击Log off会注销示例用户.
那么如何设置ASP.NET核心标识中的到期时间,以便
(a)登录用户可以在固定时间段(如8小时 …
security login expired-sessions asp.net-identity asp.net-core
我有一个问题,我的应用程序会话在大约15分钟后意外到期.我需要它们在4小时后过期.
服务器是Centos 5.5,PHP是5.3.2.
下面是我的代码(包含在全局标题中).
<?php
session_name('MobileSuiteHQ');
if(!session_id()) {
session_start();
}
ini_set('memory_limit', '512M');
ini_set('session.gc_maxlifetime', 14400000);
ini_set('session.cookie_lifetime', 14400000);
ini_set('session.gc_divisor', 1000);
ini_set('session.use_cookies', 0);
ini_set('max_execution_time', 300);
ini_set('session.name','MobileSuiteHQ');
?>
Run Code Online (Sandbox Code Playgroud)
我的.htaccess文件包含:
php_value session.gc_maxlifetime 14400000
php_value session.cookie_lifetime 14400000
php_value session.use_cookies 0
php_value session.gc_divisor 1000
Run Code Online (Sandbox Code Playgroud)
任何帮助或见解都会很棒.
编辑:当我更新我的.htaccess文件时,我无法登录,会话未启动.所以我现在删除了:
php_value session.use_cookies 0
Run Code Online (Sandbox Code Playgroud)
现在允许我登录.
php ×3
laravel ×2
ajax-request ×1
asp.net-core ×1
asp.net-mvc ×1
csrf ×1
exception ×1
inertiajs ×1
keycloak ×1
login ×1
react-hooks ×1
reactjs ×1
request ×1
security ×1
signature ×1
spring-boot ×1
spring-mvc ×1
token ×1