推荐 最新
通了顺畅了

vue 检查登录的接口,在页面登录跳转后会再次请求 造成了死循环?

我有一个检查登录接口"checked/login" 要求必须放在App.vue页面 在"mounted"方法中我请求了检查登录接口, 在打开登录页面"/web/login"时会调用一次,正常登录后 后台返回的字段data let data = { errcode: 0, is_login: true, isAdmin: false, msg: "获取成功", info: {status: 4} } 根据 "data.info.status === 4" 判断跳转到"/web/index"页面, 但是在"/web/index"页面也会请求一次"checked/login"接口,然后会再次根据 "data.info.status === 4" 判断跳转到"/web/index"页面,这样就陷入了一个一直刷新的局面,该怎么解决???

16
1
0
浏览量397
biubiuuuuu

vue 登录鉴权的问题,错误返回的问题?

使用vue2 做前端的登录页面时。 当用户名密码错误时,每次都进入了loginView.vue 的.then部门内容,提示登录成功。 我的具体代码如下。1.请各位大神,指正一下,如何修改。2.在这种从api-->store->views 调用传递中,如何保证异常、数据的正确传递,我该怎么优化我的代码?不胜感激 api/auth.js 接口调用 import axios from "axios"; export default { login: function (credentials) { return axios.post(localhost + 'login', credentials) .then(({ data }) => data) // 只返回数据部分,也可以不处理直接返回整个响应 .catch(error => Promise.reject(error)); // 将错误原样返回,以便上层调用者可以处理 } } store/auth.js import AuthApi from '@/api/auth' import axios from 'axios' // 定义模块名 export const auth = { state: { user: null }, getters: { // !! just converts the value to a boolean isLogged: state => !!state.user }, mutations: { setUserData(state, userData) { state.user = userData localStorage.setItem('user', JSON.stringify(userData)) axios.defaults.headers.common.Authorization = `Bearer ${userData.token}` }, clearUserData() { localStorage.removeItem('user') location.reload() } }, actions: { login({ commit }, credentials) { AuthApi.login(credentials) .then(({ data }) => { commit('setUserData', data) return data; // 这里返回数据用于后续操作(可选,视业务需求) }).catch(error => { console.log(error) throw error; // 将错误重新抛出,让组件能够捕获 }) }, logout({ commit }) { commit('clearUserData') } }, } views/LoginView.vue export default { data() { return { email: '', password: '', } }, methods: { login() { this.$store.dispatch('login', { email: this.email, password: this.password }) .then(() => { alert('登录成功') this.$router.push({ name: '/' }) }) .catch((error) => { alert(error.response.data.error) console.log(error) }) } } } 后端接口,用户名, 密码错误时的返回信息 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/2ee6bc65b3ba7470951f4e98e39b60f4.png)

0
1
0
浏览量227
代码日记

关于登录一直有点一知半解,这是一段php的登录代码,谁能详细讲一下原理吗?

一直对登录的原理一知半解,下面是一段php的登录代码,谁能讲讲具体的原理吗?一会儿session,一会儿token,一会儿cookie的,真不怎么明白。 //登入成功页面跳转 session('ADMIN_ID', $result["id"]); session('name', $result["user_login"]); $data = []; $data['last_login_ip'] = get_client_ip(0, true); $data['last_login_time'] = time(); $token = cmf_generate_user_token($result["id"], 'web'); if (!empty($token)) { session('token', $token); } UserModel::where('id', $result['id'])->update($data); cookie("admin_username", $name, 3600 * 24 * 30); session("__LOGIN_BY_CMF_ADMIN_PW__", null); $this->success(lang('LOGIN_SUCCESS'), url("admin/Index/index"), ['token' => $token]);

0
1
0
浏览量225
三千米的偷感

token需要放在redis吗?

新人学习token鉴权有个疑惑,token本身有加密的用户信息,并保存在客户端.如果token只存在客户端,感觉并不够安全,且无法主动退出登录(无法主动过期). 听说一般token都存在redis里,那本质上就是在服务端也保存了token,可以通过token-userId的形式存储.如果是这样的话,token本身的意义是什么,token根据就不需要携带用户信息 似乎可以在客户端创建一个随机clientId,然后携带在header上,调用登录接口后, 后端以clientId-userId的形式将clientId存在redis里.这种方式似乎更简洁, 携带的数据量更少也更安全

0
1
0
浏览量81