一个简单的登陆注册中心实现

作者:
淡白
创建时间:
Feb 12, 2020, 9:44:41 PM
学习 Java redis token dblogin 1,014

摘要:简介由于自己时常写一些小东西练手,有的需要涉及到用户登陆注册.网站应用多了的话简单的账号登陆注册重复写以及使用的时候重复注册登陆.于是乎我就写了这样一个登陆注册中心(就像微服务中的单点登录一样只是更简单)github地址服务端表结构CREATETABLE`user`(`username`varcha

简介

由于自己时常写一些小东西练手,有的需要涉及到用户登陆注册.网站应用多了的话简单的账号登陆注册重复写以及使用的时候重复注册登陆.于是乎我就写了这样一个登陆注册中心(就像微服务中的单点登录一样只是更简单)

github地址

服务端

表结构

CREATE TABLE `user` (
  `username` varchar(128) NOT NULL,
  `password` varchar(256) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

只做一件事就是登陆注册所以就只有一张表结构也就很简单.

登陆处理

1.将请求来的用户密码验证(验证成功继续)

2.获取个32位uuid(token) 以它为key用户名为value存入redis

3.返回token

返回的token可以请求出用户名 后续操作带上token即可

public Resources login(User user) {
        User user1 = getUser(user.getUsername());
        //用户名存在
        if (user1 != null) {
            if (StringUtils.md5(user.getPassword()).equals(user1.getPassword())) {
                String uuid = uuidUtils.getUUID32();
                redisTemplate.opsForValue().set(uuid, user.getUsername(), 1, TimeUnit.DAYS);
                return Resources.Ok().setMsg("登陆成功").setData(uuid);
            }
            return Resources.Err().setMsg("账号或密码错误");
        }
        return Resources.Err().setMsg("账号不存在");
    }

接口

如果服务端配置开启了口令还必须携带正确口令才行

客户端

可以通过http请求以上接口进行与服务端间的通信.
java我封装了一个客户端可以直接依赖调用.
在pom中添加

<dependency>
  <groupId>cn.p00q.dblogin</groupId>
  <artifactId>client</artifactId>
  <version>1.0</version>
</dependency>

在application配置中添加

danbai:
  dblogin:
    passwordManagement: "DanBai" #没用口令可不要
    serviceURL: "http://127.0.0.1:8085"

在需要使用的地方注入 如:

    @Autowired
    DBlogin dBlogin;