后端开发:SpringBoot实现注册与登录功能

您所在的位置:网站首页 亚马逊网站登录和注册一体化的设计方法是 后端开发:SpringBoot实现注册与登录功能

后端开发:SpringBoot实现注册与登录功能

2023-11-22 19:04| 来源: 网络整理| 查看: 265

这次实现的注册与登录功能需要进行数据库的基本操作,而且是前后端分离式开发。总的来说就是首先进行数据库的设计,然后根据数据库进行编写服务端API接口,接着来到客户端或移动端,进行登录与注册的界面设计,接收服务端提供的数据并显示在界面上。本文章主要进行后端API接口设计。后面会进行前端框架数据交互设计。

一、数据库设计 根据一般登录与注册的需求,数据库的用户表结构如下:

在这里插入图片描述

二、服务端API接口设计 1、首先进行持久化映射,生成用户表的模型类 (1)、找到Persistence一栏,选中项目,鼠标右键,点击最底下一个选项。

在这里插入图片描述

(2)、选择模型类的位置,选中用户表的所有字段,点击OK。

在这里插入图片描述

(3)、找到生成的模型类Users,添加主键生成器。在注解@Id下方添加以下代码: //指定生成器名称 @GeneratedValue(generator = "uuid2" ) @GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator" ) 2、创建DAO层,新建接口类UsersDao。代码如下: package edu.ynmd.cms.dao; import edu.ynmd.cms.model.Users; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import java.util.List; public interface UsersDao extends JpaRepository { @Query("select u from Users u where u.username=:username and u.pass=:pass") List getUsersByUsernameAndPass(@Param("username")String username, @Param("pass") String pass); } 3、编写server (1)、ManageService里面进行增删查改方法的定义。 //用户表 Users saveUser(Users users); boolean deleteUser(String id); Users getUser(String id); Users getUserByUserNameAndPass(String username,String pass); (2)、MangeServiceImpl里面进行具体方法的实现。 //*****************************用户表增删查改开始********************************* @Override public Users saveUser(Users users) { try { return usersDao.save(users); } catch (Exception e) { e.printStackTrace(); return null; } } @Override public boolean deleteUser(String id) { try { usersDao.deleteById(id); return true; } catch (Exception e) { e.printStackTrace(); } return false; } @Override public Users getUser(String id) { Optional temp=usersDao.findById(id); return temp.isPresent()?temp.get():null; } @Override public Users getUserByUserNameAndPass(String username, String pass) { List ul=usersDao.getUsersByUsernameAndPass(username,pass); if(ul.size()>0){ return ul.get(0); } return null; } 4、来到PublicAction,编写API接口 //用户登录方法 @PostMapping("/login") @ResponseBody public HashMap login( @RequestBody Account account) throws IOException { Users u=manageService.getUserByUserNameAndPass(account.username,account.password); //获取用户表的用户名和密码 if(u!=null){ String jwt= JwtUtil.generateToken(u.getRoleid(),u.getUsersid()); //获取用户角色和用户ID return new HashMap(){{ put("msg","ok"); put("token",jwt); put("role",u.getRoleid()); // put("role","admin"); }}; } else { return new HashMap(){{ put("msg","error"); put("token","error"); }}; } } public static class Account{ public String username; public String password; } //用户注册 @PostMapping("saveUser") @ResponseBody public HashMap saveUser(@RequestBody Users users) throws Exception{ HashMap m=new HashMap(); try { users.setRoleid("member"); manageService.saveUser(users); m.put("msg","ok"); } catch (Exception e) { e.printStackTrace(); m.put("msg","error"); } return m; }

最后,启动项目进行测试。

三、使用postman进行注册与登录测试 1、postman注册测试

image

2、查看数据库内容,可以看到刚刚已经注册成功

在这里插入图片描述

3、postman登录测试

在这里插入图片描述

4、输入一个错误密码,测试能不能登录

在这里插入图片描述

到此,服务端API接口已经实现,后面会写关于客户端和移动端与API接口进行数据交互的文章,敬请期待!


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3