我是网络开发的新手。我正在使用asp.net web API和angular我正在使用令牌身份验证当用户登录时我在cookie中设置令牌并将其与每个请求一起发送到现在每件事情都正常但是如果用户在同一浏览器中复制了制表符并使用两个不同的帐户登录,将cookie设置为最后一个登录帐户,这样两个帐户的令牌就变得相同了。我怎么能在他们之间分开
答案 0 :(得分:1)
在每个页面请求的自定义标头中包含当前登录用户的用户名。然后在从客户端到服务器的每次调用中,通过angular(使用拦截器)在自定义头中再次发回用户名。
在请求进入时,在服务器端,根据请求标头比较会话中登录用户的用户名和登录用户的名称。如果请求标头与会话不匹配,则您知道用户在新标签上登录了其他帐户。返回错误。
注意:如果您确实希望能够打开新标签而不共享Cookie(适用于QA),请在隐身模式下或在单独的浏览器中打开新标签页(例如,如果你使用chrome,然后使用firefox)。