谷粒学苑项目实战(八):实现登录功能

简介: 前面我们已经搭建了前端环境,运行起来后是可以看见登录框的,但是由于后端没有写东西,不能成功登录,今天我们就完成这个功能。

前面我们已经搭建了前端环境,运行起来后是可以看见登录框的,但是由于后端没有写东西,不能成功登录,今天我们就完成这个功能。


一、修改登录地址到本地(模拟登录)



前篇文章已经讲过,传送门:


谷粒学苑项目实战(七):搭建前端页面


二、创建两个方法



先在controller包下创建登录的控制类 EduLoginController.java。


@RestController
@RequestMapping("/eduservice/user")
public class EduLoginController {
}


进行登录需要调用两个方法:login登录操作方法 和 info登录之后获取用户信息的方法


1、 login方法  


@PostMapping("/login")
    public R login(){
        return R.ok().data("token", "admin");
    }


这个方法和 vue-admin-template-master\src\api\login.js 中的 login 方法相对应,获取该方法给出的token值。


2、info方法


@GetMapping("/info")
    public R info(){
        return R.ok().data("roles", "[admin]").data("name", "admin").data("avatar", "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
    }


这个方法和 vue-admin-template-master\src\api\login.js 中的 info 方法相对应,获取该方法给出的roles、name、avatar值。

 

三、前端的接口路径和请求方式需要和后端保持一致



1、login方法


ee332338d91b445284b2b62bea4eb253.png62d92e1d12a147938f6cd98d94c22163.png


2、info方法


fd56558c29b54705990301a8c718b721.png019a46833e044009bfc662167fd75257.png


四、运行测试


     

启动前端和后端,点击登录后,发现报错,报错原因:跨域问题

     

前端使用的端口为9528,后端使用的端口为8001,所以并不能直接整合,这就需要用到一个注解:@CrossOrigin


将它加到controller类上:


79be5966ec7a4cb79a4a62174943b270.png


再次运行测试,成功登录。


五、后端部分完整代码



@RestController
@RequestMapping("/eduservice/user")
@CrossOrigin    //解决跨域问题
public class EduLoginController {
    @PostMapping("/login")
    public R login(){
        return R.ok().data("token", "admin");
    }
    @GetMapping("/info")
    public R info(){
        return R.ok().data("roles", "[admin]").data("name", "admin").data("avatar", "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");
    }
}


相关文章
|
NoSQL Java Maven
idea中插件安装
idea中插件安装
|
前端开发 JavaScript Android开发
打算一个卡片记忆软件,全平台架构如何选型?
打算一个卡片记忆软件,全平台架构如何选型?
|
JavaScript Java 关系型数据库
在线视频教育平台|基于Springboot的在线视频教育平台系统设计与实现(源码+数据库+文档)
在线视频教育平台|基于Springboot的在线视频教育平台系统设计与实现(源码+数据库+文档)
598 0
|
安全 网络协议 网络安全
应用层常见的协议有哪些?
应用层常见的协议有哪些?
2060 1
|
12月前
|
存储 监控 关系型数据库
MySQL计算某条数据与上一条数据的生成时间差
MySQL计算某条数据与上一条数据的生成时间差
250 2
|
编解码 JavaScript 数据可视化
【vue3】 vue3 几款值得推荐的UI组件库
【vue3】 vue3 几款值得推荐的UI组件库
737 0
|
存储 算法 C++
婉约而深刻:二叉树的中序遍历之旅
婉约而深刻:二叉树的中序遍历之旅
98 0
|
分布式计算 运维 调度
Spark——成功解决java.util.concurrent.TimeoutException: Futures timed out after [600 seconds]
Spark——成功解决java.util.concurrent.TimeoutException: Futures timed out after [600 seconds]
11650 0
|
存储 JSON 前端开发
谷粒学院——Day02【环境搭建和讲师管理接口开发】
谷粒学院——Day02【环境搭建和讲师管理接口开发】
477 0
谷粒学院——Day02【环境搭建和讲师管理接口开发】
|
前端开发 JavaScript
【Vue】前端向后端传值,将数组转为字符串String类型— join()方法
【Vue】前端向后端传值,将数组转为字符串String类型— join()方法
2000 0
【Vue】前端向后端传值,将数组转为字符串String类型— join()方法