关于浏览器登录状态的保存
面试被问到相关-没答好,挂了
问:浏览器是怎么保持登录状态的,就是你登录一次后过段时间不用再登录
答:登录的时候,用户输入用户名密码,会走到公司的统一验证中心 portal,验证成功,会返回一个 token,
用户每次请求或者刷新网页的时候会携带这个 token,然后走到 portal 验证中心,只要 token 没过期,用户就不用重
新登录。
大佬们能帮我看看我哪里答错了,或者怎么答比较好,多谢!
面试被问到相关-没答好,挂了
问:浏览器是怎么保持登录状态的,就是你登录一次后过段时间不用再登录
答:登录的时候,用户输入用户名密码,会走到公司的统一验证中心 portal,验证成功,会返回一个 token,
用户每次请求或者刷新网页的时候会携带这个 token,然后走到 portal 验证中心,只要 token 没过期,用户就不用重
新登录。
大佬们能帮我看看我哪里答错了,或者怎么答比较好,多谢!
前后端分离的情况下,token 一般是前端存在 localstorage 中 ,在进行 xhr 请求时放在 herder 的一个字段里面,一般是 authorization 字段
非分离的情况下一般用 cookie,这时也基本上没有 xhr 类型的请求,也没有跨域请求,所以 cookie 会随着 get 或者 post 一同提交到后端
跨域请求 /xhr 类型请求也可以设置 cookie 并且可以自动带上 cookie,具体内容要查一下文档,忘记了
https://www.v2ex.com/t/656457
以下,是各种不同机制中,用来识别鉴权所用的 [凭据] :
Token (也包括 JWT 等特定协议)
Session-ID ( Server Side Session )
Session-Data ( Client Side Session )
等
以下,是可以用来存储上述凭据的介质:
Cookie
localStorage / sessionStorage
URL / HTML
等
以下,是用来发送上述凭据的机制:
Cookie 自动携带(这是 Cookie 特殊的一点,既是存储容器,也是发送机制)
自己在 Ajax 请求中加 Header 或加其它字段
直接加在 Request URL 或 Form 上
等
// 当然,很多面试官自己其实也存在这样的误解。只是为了面试的话,倒也是没太大所谓。
// and 其实这里已经好几个朋友出现相应的误解了。