Go实现简单的用户登录、注册、修改密码等功能,不需要使用数据库
时间: 2024-04-20 20:24:45 浏览: 17
以下是一个使用Go语言实现简单的用户登录、注册和修改密码功能的示例代码,不需要使用数据库:
```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
type User struct {
Username string
Password string
}
var users = make(map[string]User)
func main() {
scanner := bufio.NewScanner(os.Stdin)
for {
fmt.Println("请选择操作:")
fmt.Println("1. 注册")
fmt.Println("2. 登录")
fmt.Println("3. 修改密码")
fmt.Println("4. 退出")
scanner.Scan()
choice := scanner.Text()
switch choice {
case "1":
register(scanner)
case "2":
login(scanner)
case "3":
changePassword(scanner)
case "4":
fmt.Println("程序已退出!")
return
default:
fmt.Println("无效的选择,请重新输入!")
}
}
}
func register(scanner *bufio.Scanner) {
fmt.Println("请输入用户名:")
scanner.Scan()
username := scanner.Text()
if _, ok := users[username]; ok {
fmt.Println("用户名已存在!")
return
}
fmt.Println("请输入密码:")
scanner.Scan()
password := scanner.Text()
users[username] = User{
Username: username,
Password: password,
}
fmt.Println("注册成功!")
}
func login(scanner *bufio.Scanner) {
fmt.Println("请输入用户名:")
scanner.Scan()
username := scanner.Text()
fmt.Println("请输入密码:")
scanner.Scan()
password := scanner.Text()
user, ok := users[username]
if !ok || user.Password != password {
fmt.Println("用户名或密码错误!")
return
}
fmt.Println("登录成功!")
}
func changePassword(scanner *bufio.Scanner) {
fmt.Println("请输入用户名:")
scanner.Scan()
username := scanner.Text()
user, ok := users[username]
if !ok {
fmt.Println("用户不存在!")
return
}
fmt.Println("请输入原密码:")
scanner.Scan()
oldPassword := scanner.Text()
if user.Password != oldPassword {
fmt.Println("原密码错误!")
return
}
fmt.Println("请输入新密码:")
scanner.Scan()
newPassword := scanner.Text()
user.Password = newPassword
users[username] = user
fmt.Println("密码修改成功!")
}
```
该示例代码中使用了一个`users`变量来保存用户信息,以模拟数据库的功能。在`main`函数中,使用一个循环来提供菜单选项,根据用户的选择调用相应的函数。
`register`函数用于注册新用户,首先获取用户名和密码,然后检查用户名是否已存在,如果不存在则将用户信息保存到`users`变量中。
`login`函数用于用户登录,通过输入用户名和密码,检查用户名是否存在以及密码是否匹配。
`changePassword`函数用于修改用户密码,首先输入用户名并校验其存在性,然后输入原密码进行校验,最后输入新密码并更新用户信息。
这样就实现了简单的用户登录、注册和修改密码功能。注意,该示例代码仅为演示目的,不具备真实应用中的安全性和持久性。在实际项目中,建议使用数据库来存储用户信息,并采取更严格的安全措施。