前面我们已经搭建了前端环境,运行起来后是可以看见登录框的,但是由于后端没有写东西,不能成功登录,今天我们就完成这个功能。
一、修改登录地址到本地(模拟登录)
前篇文章已经讲过,传送门:
二、创建两个方法
先在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方法
2、info方法
四、运行测试
启动前端和后端,点击登录后,发现报错,报错原因:跨域问题
前端使用的端口为9528,后端使用的端口为8001,所以并不能直接整合,这就需要用到一个注解:@CrossOrigin
将它加到controller类上:
再次运行测试,成功登录。
五、后端部分完整代码
@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");
}
}