测试平台系列(9) 与前端联调注册/登录接口(part 2)

简介: 与前端联调注册/登录接口(part 2)

与前端联调注册/登录接口(part 2)


回顾

上篇我们说啥来着,噢对说要跟前端联调来着。这期呢,咱们就开始着手写这块内容。

这里如果前端不太擅长的呢,代码你就别仔细看了,因为你肯定也不太理解(虽然我还是会讲讲)。

你只需要搬个小板凳,看看具体解决了哪些问题就行,不需要想着怎么去写前端代码,直接copy一下就完事了!(好家伙,我直呼好家伙!)

前端IDE配置


这里我推荐Webstorm,至于vscode本人确实不太感冒,虽然会轻量级一点。(我就是喜欢jetbrains全家桶)

如果没有的话,可以用Pycharm下载Webstorm插件进行开发。

建立配置文件


首先我们第一步先建立配置文件: pityWeb\src\consts\config.js


export const CONFIG = {
  URL: 'http://localhost:7777',
  ROLE: {
    0: 'user',
    1: 'admin',
    2: 'superAdmin'
  }
}

存储我们的后端地址和用户角色信息。

查看Antd pro的登录model(pityWeb\src\models\login.js)


1.jpg

image

可以看到默认采用的fakeAccountLogin方法(这里被我注释掉了),我们找到他:

改造登录接口(pityWeb\src\services\login.js)


2.jpg

image

代码很简单,由于antd pro给我们封装好了基本的Request方法,所以我们可以直接按部就班,依葫芦画瓢写出请求auth/login的程序,完整代码:


import { CONFIG } from '@/consts/config';
export async function login(params) {
  return request(`${CONFIG.URL}/auth/login`, {
    method: 'POST',
    data: params
  })
}

修改用户的登录状态


仔细看model中的login方法,它做了2步:

  1. 登录(mock)
  2. 将登录成功/失败的信息传入changeLoginStatus方法

我们看看changeLoginStatus方法做了什么:

3.jpg

image

  1. 先设置用户的权限,这里我把ROLE已经带入进来
  2. 设置当前状态: ok代表登录成功 error代表未成功,由于咱们用的不是status状态判断用户是否登录成功,所以需要修改为三元表达式: payload.code === 0 ? 'ok': 'error'


上述具体返回信息可以从下图中看到

4.jpg

image

这里代码我们进行相应调整:


changeLoginStatus(state, { payload }) {
      // setAuthority(payload.currentAuthority);
      setAuthority(CONFIG.ROLE[payload.user.role]);
      return { ...state, status: payload.code === 0 ? 'ok': 'error', type: payload.type };
    },

5.jpg

注意这里也从mock替换成了真实接口

尝试一下


6.jpg

提示网络错误

别慌,我们F12(或者右键打开开发者工具)可以看到:

7.jpg

image

没错,我们遇到了跨域问题


跨域问题具体可以去百度一下,这里简单介绍一下,是说浏览器出于安全考虑,对于前后端域名不一致的情况下,会默认进行拦截,阻止你们进行交互。这多见于前后端分离的项目中出现。


可以从前端也可以从后端的角度来处理,我们为了方便,直接改造我们的Flask

使Flask支持跨域


我们需要先安装一个包: pip3 install flask-cors

然后进行如下改造:

8.jpg

pity/app/__init__.py

注意这个是后端的项目哈,不要搞错了,前后端分离就是前端也搞后端也搞,需要切换。


from flask import Flask
from flask_cors import CORS
from config import Config
pity = Flask(__name__)
CORS(pity, supports_credentials=True)
pity.config.from_object(Config)

贴心的我还是贴出了源代码。

再次尝试


重启下后端服务哦记得

输入错误的用户名密码,可以看到登录按钮转了一圈又回到了原点。但是登录接口又是正常响应的:

9.jpg

image

10.jpg

image

仔细查看登录块的代码,原来是没有输出错误信息。我们继续进行改造:

11.jpg

image

12.jpg

加个else即可

message.error可以弹出错误信息: 用户名或密码错误

13.jpg

image

目的达到了,接下来我们来试试正确的用户名和密码:

14.jpg

可以看到提示成功后又报错了

我们去找到api/currentUser接口的调用地方:

15.jpg

image

可以看到是这个方法在作祟,因为antd pro会mock一个用户,它有姓名等信息,但这些我们需要真实的,所以需要给他进行一次改造:

改造获取当前用户信息


还记得我们的登录接口返回的数据吗?我们每次登录后,把它写入浏览器缓存中,这样当用户登录以后,我们从浏览器缓存取出用户信息即可。

  1. 先将用户信息和token设置到缓存

16.jpg

image

localStorage可以操作浏览器缓存,但是只接受string和string的键值对,所以我们需要把user对象序列化为string。

  1. 从缓存中取出数据

17.jpg

image

记得数据需要反序列化

  1. 修改登录判断条件,这个坑找了我很久,因为咱们的字段是id不是userId,所以我刚才卡在一直登录了自动被退出:

18.jpg

image

保存后再次尝试


19.jpg

一次点亮


好了,今天的内容就到这了。前端代码已上传~




相关文章
|
3月前
|
前端开发 JavaScript 测试技术
前端测试技术中,如何提高集成测试的效率?
前端测试技术中,如何提高集成测试的效率?
|
5天前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
44 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
15天前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
115 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
3天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
25 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
1月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
36 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
2月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
174 3
|
2月前
|
前端开发 JavaScript 测试技术
前端自动化测试
前端自动化测试是通过使用工具和脚本自动执行测试用例的过程,旨在提高测试效率、减少人为错误,并确保Web应用的功能在不同环境和设备上的一致性与稳定性。
|
3月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
598 1
|
4月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
304 14
|
4月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
83 0

热门文章

最新文章

  • 1
    【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
  • 2
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    详解智能编码在前端研发的创新应用
  • 6
    巧用通义灵码,提升前端研发效率
  • 7
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 8
    智能编码在前端研发的创新应用
  • 9
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 10
    抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目