SpringBoot + layui 框架实现一周免登陆功能

这篇具有很好参考价值的文章主要介绍了SpringBoot + layui 框架实现一周免登陆功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot + layui 框架实现一周免登陆功能,SpringBoot 框架从入门到精通,springboot,layui,一周免登陆

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:SpringBoot 框架从入门到精通
✨特色专栏:国学周更-心性养成之路
🥭本文内容:SpringBoot + layui 框架实现一周免登陆功能

SpringBoot + layui 框架实现一周免登陆功能,SpringBoot 框架从入门到精通,springboot,layui,一周免登陆
要实现一周免登录功能,您可以使用Spring Boot和Layui框架配合完成。以下是一种可能的实现方式:

创建一个名为User的实体类,用于表示用户信息,其中包含用户的用户名和密码等字段,以及用于标记用户是否选择一周免登陆的rememberMe字段。

@Entity
@Table(name = "users")
public class User implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(unique = true, nullable = false)
    private String username;

    @Column(nullable = false)
    private String password;

    private boolean rememberMe;

    // Getters and Setters
    // ...
}

创建一个名为UserRepository的接口,用于对User实体进行数据库操作。

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    User findByUsername(String username);
}

创建一个名为UserService的服务类,用于处理用户相关的业务逻辑。在这个类中,添加一个方法用于验证用户的登录,并根据用户是否选择一周免登陆来设置相关的Cookie。

@Service
public class UserService {
    private UserRepository userRepository;

    @Autowired
    public void setUserRepository(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public boolean login(String username, String password, boolean rememberMe, HttpServletResponse response) {
        User user = userRepository.findByUsername(username);
        if (user != null && user.getPassword().equals(password)) {
            if (rememberMe) {
                // 设置一周免登陆的Cookie,有效期为7天
                Cookie cookie = new Cookie("rememberMe", "true");
                cookie.setMaxAge(7 * 24 * 60 * 60);  // 7天的秒数
                cookie.setPath("/");
                response.addCookie(cookie);
                user.setRememberMe(true);
                userRepository.save(user);
            }
            return true;
        }
        return false;
    }
}

创建一个名为LoginController的控制器类,用于处理用户登录的请求。

@Controller
public class LoginController {
    private UserService userService;

    @Autowired
    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    @RequestMapping("/login")
    public String login(String username, String password, boolean rememberMe, HttpServletResponse response) {
        if (userService.login(username, password, rememberMe, response)) {
            return "redirect:/home";  // 登录成功后跳转到主页
        }
        return "redirect:/login?error";  // 登录失败跳转回登录页面,并带上错误参数
    }
}

在对应的登录页面中使用Layui框架的表单组件,将用户名、密码和记住我选项组织成一个表单,并向LoginController的登录请求发送POST请求。

<!DOCTYPE html>
<html>
<head>
    <title>登录</title>
    <!-- 引入Layui的相关资源 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.4/css/layui.min.css">
    <script src="https://cdn.staticfile.org/layui/2.5.4/layui.min.js"></script>
</head>
<body>
    <div class="layui-container">
        <form class="layui-form" action="/login" method="post">
            <div class="layui-form-item">
                <label class="layui-form-label">用户名</label>
                <div class="layui-input-block">
                    <input type="text" name="username" lay-verify="required" autocomplete="off" placeholder="请输入用户名" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">密码</label>
                <div class="layui-input-block">
                    <input type="password" name="password" lay-verify="required" autocomplete="off" placeholder="请输入密码" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-input-block">
                    <input type="checkbox" name="rememberMe" title="记住我" lay-skin="primary">
                    <button class="layui-btn" lay-submit lay-filter="formDemo">登录</button>
                </div>
            </div>
        </form>
    </div>

    <script>
        layui.use(['form'], function() {
            var form = layui.form;

            // 表单验证
            form.verify({
                required: function(value, item) {
                    if(value.length < 1) {
                        return '该项不能为空';
                    }
                }
            });

            // 监听表单提交
            form.on('submit(formDemo)', function(data) {
                // 获取表单数据并提交
                var username = data.field.username;
                var password = data.field.password;
                var rememberMe = data.field.rememberMe === 'on';

                // 发送AJAX请求提交登录表单
                $.ajax({
                    url: '/login',
                    type: 'POST',
                    data: {
                        username: username,
                        password: password,
                        rememberMe: rememberMe
                    },
                    success: function(res) {
                        // 登录成功后的逻辑处理
                        if (res.success) {
                            window.location.href = '/home';
                        } else {
                            layer.msg(res.message, {icon: 2});
                        }
                    },
                    error: function() {
                        layer.msg('服务器错误', {icon: 2});
                    }
                });

                return false; // 阻止表单提交
            });
        });
    </script>
</body>
</html>

在上述代码中,我们使用了Layui的form模块进行表单的验证和提交。form.verify()函数用于定义表单字段的验证规则,这里只提供了一个required规则作为示例。

form.on(‘submit(formDemo)’, function(data) {})函数用于监听表单提交事件,并在提交时使用AJAX发送登录请求。提交成功后,根据服务器的响应进行相应的处理。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

SpringBoot + layui 框架实现一周免登陆功能,SpringBoot 框架从入门到精通,springboot,layui,一周免登陆文章来源地址https://www.toymoban.com/news/detail-686887.html

到了这里,关于SpringBoot + layui 框架实现一周免登陆功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui实现日期选择器最近一周,上一周,下一周功能

    界面部分代码: js部分:

    2024年02月11日
    浏览(32)
  • layui介绍以及登录功能的实现

    Layui 是一套开源免费的 Web UI 组件库,采用自身轻量级模块化规范,遵循原生态的 HTML/CSS/JavaScript 开发模式,非常适合网页界面的快速构建。Layui 区别于一众主流的前端框架,它更多是面向于后端开发者,即无需涉足各类构建工具,只需面向浏览器本身,便可将页面所需呈现

    2024年02月16日
    浏览(28)
  • 【SpringBoot项目实战+思维导图】瑞吉外卖①(项目介绍、开发环境搭建、后台登陆/退出功能开发)

    全文主体框架来源于黑马瑞吉外卖的项目资料,我在文中会嵌入如下五个方面的个人内容: 项目中易发生错误的地方 项目中涉及的一些难理解知识点 一些遗忘知识点的回顾 业务的多种实现方法 我在做项目时的思考和一些踩坑 作为一名软件开发工程师,我们需要了解在软件开

    2024年02月05日
    浏览(42)
  • 一张图带你学会入门级别的SpringBoot实现文件上传、下载功能

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:SpringBoot实战 标题 一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码) 一张思维导图带你学会Springboot创

    2024年02月12日
    浏览(63)
  • LayUI框架实现OA会议系统——增删改查

    目录 前言 1. 配置准备 1.1 Layui框架 1.2  mysql数据库表 1.3 用户管理JSP页面 1.4 新增、修改用户共用界面   2. 后台编写  2.1 编写UserDao类增删改查方法 2.2  R工具类 2.3 BaseDao数据库查询方法  2.4 UserAction控制器类   3. 前台JS编写 3.1 userManage页面JS 3.2 user新增、修改iframe层JS 4. 功能运

    2024年02月16日
    浏览(29)
  • 使用.LayUI实现动态选项卡Tab的强大功能

    在Web界面开发中,动态选项卡Tab是一种常见且实用的功能。它可以让用户在页面中切换不同的内容,提供了更好的用户体验。而.LayUI作为一款流行的前端框架,提供了丰富的组件,包括可以轻松实现动态选项卡Tab的功能。在本文中,我们将学习如何使用.LayUI来创建动态选项卡

    2024年02月16日
    浏览(38)
  • 前端框架Layui实现动态树效果(书籍管理系统左侧下拉列表)

    目录 一、前言 1.什么是树形菜单 2.树形菜单的使用场景 二、案例实现 1.需求分析 2.前期准备工作 ①导入依赖 ②工具类 BaseDao(通用增删改查) BuildTree(完成平级数据到父子级的转换) ResponseUtil(将数据转换成json格式进行回显) ③编写实体 3.dao层编写 4.servlet层编写 5.jsp页面搭

    2024年02月13日
    浏览(26)
  • SpringBoot实现登陆注册(附源码)

            先看看我的项目总结吧: 先说完美的吧,因为前端登陆注册界面是之前的,这次就复制了一下,在前端部分仅书写了一些vue,使用v-model绑定username以及password,发送axios请求,后端那部分因为使用的是mybatis-plus,也没有编写一些sql语句,当然,这些sql语句也不是很复

    2024年02月11日
    浏览(27)
  • 黑马点评-01基于Redis实现短信登陆的功能

    当前模型 nginx服务器的作用 手机或者app端向nginx服务器发起请求,nginx基于七层模型走的是HTTP协议,可以实现基于Lua直接绕开tomcat访问Redis nginx也可以作为静态资源服务器,轻松扛下上万并发并负载均衡到下游的tomcat服务器,利用集群支撑起整个项目 使用nginx部署前端项目后还可以

    2024年02月07日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包