SpringBoot实现注册与登录功能

一、数据库设计

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

后端开发:SpringBoot实现注册与登录功能-云海天教程

二、服务端API接口设计

1、首先进行持久化映射,生成用户表的模型类

(1)、找到Persistence一栏,选中项目,鼠标右键,点击最底下一个选项。

后端开发:SpringBoot实现注册与登录功能-云海天教程

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

后端开发:SpringBoot实现注册与登录功能-云海天教程

(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注册测试

后端开发:SpringBoot实现注册与登录功能-云海天教程

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

后端开发:SpringBoot实现注册与登录功能-云海天教程

3、postman登录测试

后端开发:SpringBoot实现注册与登录功能-云海天教程

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

后端开发:SpringBoot实现注册与登录功能-云海天教程

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

以上是 SpringBoot实现注册与登录功能 的全部内容, 来源链接: utcz.com/a/123566.html

回到顶部