export const SET_TOKEN = (token: string) => { localStorage.setItem('TOKEN', token) }有什么用
时间: 2024-03-23 10:43:29 浏览: 80
这段代码是一个函数,函数名为`SET_TOKEN`。它接收一个字符串类型的参数`token`,并将这个`token`值保存到浏览器的本地存储中,键名为`TOKEN`。这个函数的作用是将`token`值永久性地存储在浏览器中,以便在用户下次使用应用程序时能够自动登录或保持登录状态。
在实际的应用场景中,这个`SET_TOKEN`函数可能会在用户登录成功后被调用,以将服务器返回的`token`值保存到浏览器中。在后续的网络请求中,这个保存在本地存储中的`token`值可以被用于验证用户的身份或授权访问。例如:
```javascript
axios.get('/api/user/profile', {
headers: {
'Authorization': `Bearer ${localStorage.getItem('TOKEN')}`
}
})
```
这里的`Authorization`头部包含了一个`Bearer`类型的令牌,它的值是从浏览器的本地存储中获取的`TOKEN`值。服务器会根据这个令牌来验证用户的身份并授权访问。
相关问题
const submitForm2 = (formEl: FormInstance | undefined) => { const { iphone, iphonema } = ruleForms; console.log(ruleForms,'ruleForms') ElMessage('登录中') formEl.validate().then((_res: any) => { console.log(1111) loginPhoneData({ mobile: iphone, code: iphonema }).then(res => { console.log(222) const userToken = res.data.access_token localStorage.setItem('token', userToken) ElMessage('登录成功') router.push('/management/new') }).catch(err => { ElMessage.error('账号或密码错误') }) })
这段代码是一个使用 Ant Design Vue 组件库中的 Form 组件进行表单验证和提交的函数。函数接收一个 FormInstance 对象作为参数,该对象用于操作表单组件。其中,`iphone` 和 `iphonema` 分别是表单中手机号和验证码的字段值,`ElMessage` 是一个用于显示消息提示的组件,`loginPhoneData` 是一个异步函数,用于向服务器发送登录请求并获取用户访问令牌,`localStorage.setItem('token', userToken)` 将用户访问令牌存储在本地存储中,`router.push('/management/new')` 用于导航到应用程序的新页面。如果表单验证失败或登录请求失败,将会通过 `ElMessage.error` 显示错误提示。
优化代码 methods: { onSubmit(values) { console.log("submit", values); if(values.username === this.$username && values.password === this.$password) { localStorage.setItem("Token", false) this.$router.push({path: '/'}) } } }
这段代码可以进行以下优化:
1. 将 `values` 对象中的属性解构出来,以便更方便地获取 `username` 和 `password` 属性的值。
2. 将对 `$username` 和 `$password` 的访问改为对组件实例中的 `username` 和 `password` 属性的访问,以避免使用 `$` 符号。
3. 将 `localStorage.setItem` 方法的值改为 `true`,以表示用户已经通过身份验证,并将该值的键名改为一个常量,以避免硬编码。
4. 在调用 `$router.push` 方法时,使用命名路由(name)而不是路径(path),以提高代码的可读性。
优化后的代码如下所示:
```
const TOKEN_KEY = "Token";
methods: {
onSubmit({ username, password }) {
console.log("submit", { username, password });
if (username === this.username && password === this.password) {
localStorage.setItem(TOKEN_KEY, true);
this.$router.push({ name: "home" });
}
}
}
```
其中,假设在路由配置中有一个名为 `home` 的路由项。
阅读全文