我使用 [Axios](https://github.com/axios/axios) 作为 HTTP client。
1. 从 localStorage 中读取 token,并设置到 header 中
axios.defaults.headers.common['Any-Token-Key'] = localStorage.getItem('any-token-key')
2. 拦截 response,处理 401 Unauthorized
错误。
axios.interceptors.response
.use((response) => {
return response
},
function (error) {
if (error.response.status === 401) {
router.go('/login')
}
})
3. 编写 login 逻辑
export const login = async ({user, password}) => {
const { data } = await axios.post('/login', {user, password})
const { token } = data
localStorage.setItem('any-token-key', token)
axios.defaults.headers.common['Any-Token-Key'] = token
}
前端登录认证是一个基础到不能再基础的功能,可是我发现不少号称有几年开发经验的程序员还是写不出来。
虽然不知道具体原因,但是我推测可能有一下原因
其实,日常工作中没那么多造火箭的的工作,算法和源码理解虽然很重要,但是基本的代码能力也是必不可少的。
来面试的同学/前辈们一上来就谈 Vue/React 源码,设计思想,中台实现,吧啦吧啦的,给人一种没有实际开发经验的感觉。