测试平台系列(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

一次点亮


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




相关文章
|
20天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
63 3
|
2月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
2月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
151 1
|
3月前
|
测试技术
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
本文是关于自动化测试项目实战笔记,主要介绍了如何测试用户注册功能,包括验证码错误、注册成功以及弹框处理的测试步骤和代码实现。
145 2
自动化测试项目实战笔记(三):测试用户注册(验证码错误,成功,出现弹框时处理)
|
3月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
82 2
|
2月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
73 0
|
3月前
|
测试技术 数据安全/隐私保护
北邮人论坛登录页面测试用例
北邮人论坛登录页面测试用例
57 1
|
4月前
|
JavaScript 前端开发 数据库
测试开发之路--Flask 之旅 (四):登录与权限控制
本文介绍了如何使用 Flask-Security 和 Flask-Login 实现权限管理和用户登录功能。首先讲解了 Flask 的消息闪现功能,用于向模板传递信息。接着介绍了如何利用 Flask-Security 的 `roles_required` 和 `roles_accepted` 装饰器保护页面,并展示了如何通过 `current_user` 获取当前用户信息。最后提到了使用 Flask-Login 时应避免升级至 0.4.0 版本,以防出现兼容性问题。通过这些技术,搭建了一个基本的用户权限管理系统。
149 6
测试开发之路--Flask 之旅 (四):登录与权限控制
|
20天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
72 11
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
71 3

热门文章

最新文章