后端开发:SpringBoot实现注册与登录功能
2020-06-04 07:43
337 查看
这次实现的
注册与登录功能需要进行
数据库的基本操作,而且是
前后端分离式开发。总的来说就是首先进行数据库的设计,然后根据数据库进行编写服务端
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<Users,String> { @Query("select u from Users u where u.username=:username and u.pass=:pass") List<Users> 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<Users> temp=usersDao.findById(id); return temp.isPresent()?temp.get():null; } @Override public Users getUserByUserNameAndPass(String username, String pass) { List<Users> ul=usersDao.getUsersByUsernameAndPass(username,pass); if(ul.size()>0){ return ul.get(0); } return null; }
4、来到PublicAction,编写API接口
//用户登录方法 @PostMapping("/login") @ResponseBody public HashMap<String,String> 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<String,String>(){{ put("msg","ok"); put("token",jwt); put("role",u.getRoleid()); // put("role","admin"); }}; } else { return new HashMap<String,String>(){{ 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注册测试
2、查看数据库内容,可以看到刚刚已经注册成功
3、postman登录测试
4、输入一个错误密码,测试能不能登录
到此,服务端API接口已经实现,后面会写关于客户端和移动端与API接口进行数据交互的文章,敬请期待!
相关文章推荐
- Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能
- 使用IDEA创建Spring Boot项目, 整合Mybatis ,连接MySql数据库,实现简单的登录注册功能
- Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能
- 【个人学习】使用idea搭建SpringBoot,整合Mybatis、Thymeleaf,连接数据库,实现具有前端界面项目:主要功能登录,注册,个人信息查看、更改,不定时更新中...
- 【SpringBoot】DEMO:实战②——登录注册功能实现
- spring boot+jpa 实现登录注册功能
- 搭建spring-boot+vue前后端分离框架并实现登录功能
- 初次使用springboot与jQuery实现简单的用户登录注册功能
- 基于SpringBoot从零构建博客网站 - 整合ehcache和开发注册登录功能
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现
- 使用springmvc+mybatis实现增删改查并进行登录注册功能
- 开发实训10---Android---注册登录功能实现1
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十七):登录验证码实现(Captcha)
- 【SpringBoot】DEMO:实战①——注册功能实现
- springboot项目使用短信验证码的登录注册功能
- Android实现注册登录头像上传等功能常规开发(Android端,服务器端开发实例)
- Spring Boot + Java爬虫 + 部署到Linux(六、后端Controller实现、下载文件以及登录验证拦截器)
- 基于SpringBoot开发,实现增删改查功能
- Spring Boot / Spring MVC 入门实践 (三) : 入门项目介绍与用户注册登录的实现
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架