从AngularJS客户端注销函数

本文关键字:函数 注销 客户端 AngularJS | 更新日期: 2023-09-27 18:05:26

我正在尝试使用AngularJS和基于令牌的身份验证机制从客户端练习登录和注册函数。但是,本文没有提到如何使用AngularJS从客户端处理注销和过期的身份验证令牌函数。

我的问题:1)如果我想添加一个全局HTML注销按钮,如果用户按下该按钮,那么我如何从客户端Angular脚本以及服务器端(. net/c#)清除身份验证令牌?

2)我将认证令牌的有效期(从服务器端代码。net/c#)设置为60分钟。如果浏览器在60分钟或更长时间内处于空闲状态(没有任何用户交互),那么如果用户在60分钟或更长时间的空闲间隔后继续在浏览器上工作,那么如何自动将用户踢出站点并定向到登录页面?

提前谢谢你。

文章链接:

开始学习AngularJS和ASP。. NET MVC -期待已久的第三部分


关于本文作者使用的基于令牌的身份验证的一些概要细节:

POST令牌请求正文:

grant_type:密码用户名:email@email.com(或任何你注册的)密码:密码!(或者你注册时设置的密码)

和token响应:

{"access_token":"R-AejC88wImTKUulwlZBRsR620zXuHcrjV26UGObVjl5s9aqJIhs2hzt60CdLhL0hXNR-kyLTgrTfiMDV4JZJsmC1jV3MQHKcScsW6lYAMz1kegSyQiSfRHVj8W1E76x9uiHYJVIWhwA_RH7GkTn3K_Z0ugV_0qsSd1cWZ5qpqRedrS1vbHNIr7PR-FvAcKGA5c0S7ffadD8TP6N8OX8AyEg2t5rxppAeT2AlqlY3G5HdJqDkPgXQx5pL_xXRWkQCuOhIgUCm-6TDAksNf-EJ7HzPKD7nl7KU8Pd66rQO56p_vtq6eOO9OtgAmN8FviR-gNKGHCsz4udPrAKTExF_Ht4hBpbLoiGIXIbVUpzTeB-RMZUMMcRgByo4tCELjd41pV0mjaXHS6s7mTuwlgGmxiAU5AoYgNTXVOe9YegZMvjW_lAIUw0YlZ0m7RAiPOTTDlRzmV1ntm3YGvAN9h9_m027twqfGz5YsHsbh3RYW8","token_type":"持票人","expires_in":1209599,"用户名":"email.com","。发布":" 2014年11月16日星期日22:55:45 GMT"。expires": "Sun, 30 Nov 2014 22:55:45 GMT"}

从AngularJS客户端注销函数

Q1:正如jpgrassi所说,您可以删除/设置未定义用户令牌,因为您将其存储在"logout"事件上(示例:SessionService.token)。

Q2:考虑到你知道如何设置Owin,你可以改变OAuthAuthorizationServerOptions中的AccessTokenExpireTimeSpan。例子:

...
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() {
  AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(minutes) 
};
...
app.UseOAuthAuthorizationServer(OAuthServerOptions);