使用vue2 做前端的登录页面时。 当用户名密码错误时,每次都进入了loginView.vue 的.then部门内容,提示登录成功。
我的具体代码如下。1.请各位大神,指正一下,如何修改。2.在这种从api-->store->views 调用传递中,如何保证异常、数据的正确传递,我该怎么优化我的代码?不胜感激
import axios from "axios";export default { login: function (credentials) { return axios.post(localhost + 'login', credentials) .then(({ data }) => data) // 只返回数据部分,也可以不处理直接返回整个响应 .catch(error => Promise.reject(error)); // 将错误原样返回,以便上层调用者可以处理 }}
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
<script>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) }) } }}</script>
后端接口,用户名, 密码错误时的返回信息
这些逻辑其实不用考虑其他人使用,写的人知道就完事了。
我说个改动点哈
axios.defaults.headers.common.Authorization = `Bearer ${userData.token}`
这个其实应该封装一个独立的 request,比如 axios.create 一个新实例,而不应该给 axios 直接赋值。有可能会有一些请求不需要 Authorization
至于你说的进入到首页的问题,就是你没有做拦截器,然后接收的时候也没判断 message 是否存在,一般我们会在拦截器做拦截,然后统一的异常透出
1.游戏加载流程 2.鉴权概念 3.重要概念 3.1全局变量GameStatusInfo 游戏加载流程 游戏加载主要分为两个阶段,准备阶段是由手Q进行,开发者无需理会,执行阶段为开发者可控制的阶段。 引擎启动后,会从手Q和后台中获取当前游戏id(gameId),用户id(openId)等信息,并将这些参数写入到js引擎的全局变量GameStatusInfo中,并执行游戏对应的main.js文件。开
在vue的项目中,前端请求后端的接口,数据返回了,状态是200,但是在axios的拦截器里走了error()的回调,这是为什么呢?! 返回的是一个文件流,盲猜是返回的文件的格式不对,不知道要咋改
作为一个新的主题,我已经建立了一个Ubuntu 12网络服务器,根目录是 /var/www/包含我的脚本index.php和一个名为“减少”的子目录,包含一个二进制文件(一个计算机代数系统,文件名也是“减少””)。 使用ssh,我可以作为root用户和我的非管理员用户帐户以及cd登录到/var/www/目录,并通过执行“/reduce/reduce”启动二进制文件。但是,如果我对索引做同样的事情。
我正在构建angular2应用程序,目前我有一个家庭组件与菜单栏和路由器出口的主要内容。我添加了登录机制,所以如果用户没有经过身份验证,那么登录页面将显示在整个屏幕上,登录后用户将被路由到上面结构的主/主组件。 当我运行登录页面加载的应用程序时,成功验证后,它会将我路由到主页,但在加载菜单的主页(如Dashboard1、Dashboard2、Report1等)中,链接无法正常工作。当我点击任何菜单
我可以通过重新启动服务器并尝试重新登录来重现此问题。我在开发模式和生产模式中测试了这个问题,得到了相同的行为。
问题内容: 您好,我是python的新手,想知道您是否可以帮我一些忙。我一直在玩这段代码,似乎无法使其正常工作。 现在,isPrime方法的输出如下: 我确定该函数应返回true,然后应打印“是”。我想念什么吗? 问题答案: 您将放弃递归调用的返回值: 您也想传播递归调用的值,包括一条语句: 现在,您的代码将输出: