黑馬程序員Redis入門到實戰(zhàn)教程,深度透析redis底層原理+redis分布式

P69 比較簡單的token實現(xiàn)方式(注意,下面獲取隨機(jī)賬號,由于本人使用的是QQ郵箱登錄,所以,使用手機(jī)號登錄的娃子記得更改生成隨機(jī)數(shù))
@Test void testUserLogin(){ for (int i = 0; i < 3; i++) { String QQID = RandomUtil.randomNumbers(10)+"@qq.com"; User user = userService.query().eq("phone", QQID).one(); if (user == null) { // 6. 不存在,創(chuàng)建用戶并保存 user = new User(); user.setPhone(QQID); user.setNickName(USER_NICK_NAME_PREFIX + RandomUtil.randomString(10)); // 2.保存用戶 userService.save(user); } String token = UUID.randomUUID().toString(); // 7.2 將User對象轉(zhuǎn)為Hash存儲 UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class); Map<String, Object> userMap = BeanUtil.beanToMap(userDTO,new HashMap<>(), CopyOptions.create() .setIgnoreCase(true) .setFieldValueEditor((fieldName,fieldValue)->fieldValue.toString()) ); // 7.3 存儲 stringRedisTemplate.opsForHash().putAll(LOGIN_USER_KEY + token, userMap); // 7.4 設(shè)置有效期 stringRedisTemplate.expire(LOGIN_USER_KEY + token, LOGIN_USER_TTL, TimeUnit.MINUTES); saveTokensToCSV(token); } } void saveTokensToCSV(String token) { String path = "E:\\JavaProject\\練手項目\\redis\\hm-dianping\\src\\main\\resources\\token.csv"; File file = new File(path); System.out.println(FileReader.create(file).readString()); FileAppender appender = new FileAppender(file, 2, true); appender.append(token); appender.flush(); System.out.println(FileReader.create(file).readString()); }
標(biāo)簽: