如何在angularJS应用中处理用户身份验证会话cookie?

时间:2018-09-12 11:39:52

标签: angularjs

AngularJS Web开发的新功能。当前,我有一个必须使用全局身份验证表单的应用程序。 SPA有多个部分页面/视图。为了在标签之间导航,我使用ngCookies存储客户登录信息。

If the user refreshes the page, I read the cookies and bring the related information for a given customer.

It is working fine but the problem arises when the user closes the application without clicking the logout button and the cookies remain in the browser.

So, the next time another customer logs onto the site, it reads the old cookies and bring the old customer information instead of currently logged-on user.

function writeLoginCustIDCookie(loginCustID) {
$cookies.put("LoginCustID", loginCustID, { path: '/' });
}

function getLoginCustIDCookie() {
return $cookies.get("LoginCustID");
}

请帮助我解决该问题。

1 个答案:

答案 0 :(得分:0)

您将必须配置流。我的工作是这样:

  • 让浏览器处理cookie。当您的服务器回复cookie时,浏览器将对其进行设置。
  • 由于浏览器处理了cookie,因此您要做的就是将withCredentials: true添加到您的http请求中,以便发送cookie。
  • 现在,用户信息;登录时,您可能会从服务器收到一些包含用户信息的响应。我通常将其保存到localStorage。该信息不是敏感数据。只是一些基本信息。
  • 当用户单击注销时,您将删除localStorage数据,并向服务器发送/ logout请求。
  • 如果用户未注销,请关闭浏览器,然后他再次出现。...他将被登录。大多数网站就是这种情况。他将登录,直到cookie过期。
  • 如果用户在一周后回来,则可以说您的Cookie已过期。您将向后端提出一些请求,后端将回复401。在这里,您将捕获此错误,删除localStorage数据并将其重定向到登录页面。

这是我通常要做的。我想没什么疯狂的。