在开发现代应用程序时,登录和注册是基础功能之一。本文将介绍如何使用HarmonyOS Next(ARKTS)实现登录和注册页面,同时使用Spring Boot作为后端提供接口。我们将分为前端(HarmonyOS)和后端(Spring Boot)两部分进行详细讲解。

一、HarmonyOS Next 前端实现

首先,我们需要在HarmonyOS Next中创建一个简单的登录和注册页面。以下是使用ARKTS实现的示例代码。

1. 登录页面

import { Page, Text, Input, Button } from '@arkui/arkts';

export default class LoginPage extends Page {
    username = '';
    password = '';

    handleLogin() {
        // 调用后端登录API
        fetch('http://localhost:8080/api/login', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({
                username: this.username,
                password: this.password,
            }),
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                // 处理登录成功
                console.log('登录成功', data);
            } else {
                // 处理登录失败
                console.error('登录失败', data.message);
            }
        });
    }

    render() {
        return (
            <div>
                <Text>登录</Text>
                <Input placeholder="用户名" onInput={e => this.username = e.target.value} />
                <Input type="password" placeholder="密码" onInput={e => this.password = e.target.value} />
                <Button onClick={() => this.handleLogin()}>登录</Button>
            </div>
        );
    }
}

2. 注册页面

import { Page, Text, Input, Button } from '@arkui/arkts';

export default class RegisterPage extends Page {
    username = '';
    password = '';

    handleRegister() {
        // 调用后端注册API
        fetch('http://localhost:8080/api/register', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify({
                username: this.username,
                password: this.password,
            }),
        })
        .then(response => response.json())
        .then(data => {
            if (data.success) {
                // 处理注册成功
                console.log('注册成功', data);
            } else {
                // 处理注册失败
                console.error('注册失败', data.message);
            }
        });
    }

    render() {
        return (
            <div>
                <Text>注册</Text>
                <Input placeholder="用户名" onInput={e => this.username = e.target.value} />
                <Input type="password" placeholder="密码" onInput={e => this.password = e.target.value} />
                <Button onClick={() => this.handleRegister()}>注册</Button>
            </div>
        );
    }
}

二、Spring Boot 后端实现

在后端,我们将使用Spring Boot来创建RESTful API,以支持登录和注册功能。以下是相应的代码示例。

1. Maven依赖(pom.xml)

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

2. 用户实体

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String username;
    private String password;

    // Getter和Setter省略
}

3. 用户控制器

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @PostMapping("/register")
    public ApiResponse register(@RequestBody User user) {
        userRepository.save(user);
        return new ApiResponse(true, "注册成功");
    }

    @PostMapping("/login")
    public ApiResponse login(@RequestBody User user) {
        User existingUser = userRepository.findByUsername(user.getUsername());
        if (existingUser != null && existingUser.getPassword().equals(user.getPassword())) {
            return new ApiResponse(true, "登录成功");
        } else {
            return new ApiResponse(false, "用户名或密码错误");
        }
    }
}

4. 用户仓库

import org.springframework.data.jpa.repository.JpaRepository;

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

5. ApiResponse类

public class ApiResponse {
    private boolean success;
    private String message;

    public ApiResponse(boolean success, String message) {
        this.success = success;
        this.message = message;
    }

    // Getter和Setter省略
}

三、总结

以上代码展示了如何使用HarmonyOS Next和Spring Boot实现一个简单的登录和注册系统。前端通过fetch API与后端进行数据交互,后端使用Spring Boot提供RESTful接口支持数据的存取。通过这样的实现,我们成功构建了一个基础的用户认证体系,后续可以在此基础上加入更多功能,如密码加密、JWT认证等。希望本文能为开发者提供一些帮助,促进对HarmonyOS和Spring Boot的了解和使用。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部