文档章节

JAVA 利用时间戳来判断TOKEN是否过期

h
 huangkejie
发布于 10/16 23:49
字数 203
阅读 153
收藏 0
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;

/**
 * @description:
 * @author: kejie.huang
 * @date: Created in 2019/10/16 14:36
 * @version:
 * @modified By:
 */
public class Demo01 {
    public static void main(String[] args) {
        LocalDateTime localDateTimeNow = LocalDateTime.now();
        System.out.println(DateUtils.formatDateToParse(DateUtils.localDateTimeConvertDate(localDateTimeNow),DateUtils.DATE_FORMART_YYYY_MM_DD_HH_MM_SS));
        Long milliSecond = getTimestampOfDateTime(localDateTimeNow);
        milliSecond = milliSecond + (7200L * 1000L);
        LocalDateTime dateTime = getDateTimeOfTimestamp(milliSecond);
        System.out.println(DateUtils.formatDateToParse(DateUtils.localDateTimeConvertDate(dateTime),DateUtils.DATE_FORMART_YYYY_MM_DD_HH_MM_SS));
    }
    public static long getTimestampOfDateTime(LocalDateTime localDateTime) {
        ZoneId zone = ZoneId.systemDefault();
        Instant instant = localDateTime.atZone(zone).toInstant();
        return instant.toEpochMilli();
    }
    public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
        Instant instant = Instant.ofEpochMilli(timestamp);
        ZoneId zone = ZoneId.systemDefault();
        return LocalDateTime.ofInstant(instant, zone);
    }
}

往往在开发过程中,交互时,需要头部设置TOKEN,而这个TOKEN的有效期,该如何设置?以上的案例只是婉转的举例说明,7200 * 1000 代表两个小时,具体的算法是 1*60*60*2,而一秒的等于1000,以上引用了DateUtils,可以参考https://my.oschina.net/u/3155476/blog/3118522

© 著作权归作者所有

h
粉丝 5
博文 59
码字总数 24380
作品 0
广州
程序员
私信 提问
App开放接口api安全性—Token签名sign的设计与实现

App开放接口api安全性—Token签名sign的设计与实现 api签名 / sign签名 / token 前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感...

蜗牛奔跑
2017/11/01
221
0
Spring Security OAuth 个性化token

个性化Token 目的 默认通过调用 /oauth/token 返回的报文格式包含以下参数 并没包含用户的业务信息比如用户信息、租户信息等。 扩展生成包含业务信息(如下),避免系统多次调用,直接可以通过...

冷冷gg
02/18
425
3
Guava 源码分析(Cache 原理)

前言 Google 出的 Guava 是 Java 核心增强的库,应用非常广泛。 我平时用的也挺频繁,这次就借助日常使用的 Cache 组件来看看 Google 大牛们是如何设计的。 缓存 本次主要讨论缓存。 缓存在日...

crossoverJie
2018/06/13
0
0
Spring-Security-OAuth2

OAuth 是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而不需要将用户名和密码提供给第三方应用。OAuth允许用户提供一个令牌,...

李玉长
2018/05/10
274
0
SpringBoot 整合 oauth2(三)实现 token 认证

关于session和token的使用,网上争议一直很大。 总的来说争议在这里: session是空间换时间,而token是时间换空间。session占用空间,但是可以管理过期时间,token管理部了过期时间,但是不占...

FantJ
2018/05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue.js学习笔记2 - better-scroll滚动条

better-scroll滚动条 使用作者自制的better-scroll库,实现内容的滚动。 先在package.json加上依赖: "better-scroll": "^0.1.7" 接着再npm install安装依赖。 import BScroll from 'better-......

swanf
今天
7
0
设计模式之适配器模式

定义 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工 作。 UML类图 适配器分为两种,类适配器与对象适配器。 类适配器的UML图...

陈年之后是青葱
今天
8
0
教你玩转Linux—磁盘管理

导读 Linux磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个命令为df、du和fdisk。 df df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了...

问题终结者
今天
11
0
KMP

字符串匹配算法 针对被匹配字段生产一个部分匹配表 A B C D A B D 0 0 0 0 1 2 0 部分匹配表 熟悉前缀与后缀的概念 ,“部分匹配表” 的生产就是根据前缀、后缀的最苍的共有元素的长度 前缀:...

鬼才王
昨天
6
0
快速搭建Jenkins集群

关于Jenkins集群 在Jenkins上同时执行多个任务时,单机性能可能达到瓶颈,使用Jenkins集群可以有效的解决此问题,让多台机器同时处理这些任务可以将压力分散,对单机版Jenkins的单点故障的隐...

程序员欣宸
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部