2015-04-07 45 views
0

我对web开发比较陌生,我不知道如何在应用程序的前端安全地存储用户信息。我的问题实际上是从服务器响应中使用客户端JavaScript提取数据的问题。在前端存储用户认证信息

所有我知道该怎么做是为了获取通过模板的用户数据,如EJS像这样:

<a id="user_id" value="<%=user._id%>" ></a> 

,但必须有比这更好的办法吗?我觉得把用​​户信息放入DOM是一个坏主意,为什么不把它放入WebDB或IndexedDB?

我应该做的,像这样?:

sessionStorage.setItem('user_id', '<%=user._id%>'); 

的问题是,这实际上并不检索数据:

enter image description here

所以也许我应该问的问题 - 如何我可以从html头部的服务器响应中获取数据吗?

回答

1

通常,在成功登录后,将使用唯一标识该用户所做请求的UID设置cookie。一些后端会自动执行此操作(只是Google jsessionid),并将该id映射到您为该客户端保存的一组变量(通常称为“会话作用域变量”)。

需要将此添加到每个表单将是一个非常低效的过程。改用cookie。

1

那么,一旦用户登录,我认为可以向用户显示他/她的用户名,而不是密码。

我会localStorage去这样的:

window.localStorage.username = 'theboss'; 
document.getElementById('user_id').value = window.localStorage.username; 

Documentation for localStorage