javatoken过期时间的简单介绍

发布时间:2022-11-24

本文目录一览:

  1. java jwt如何刷新过期时间
  2. java微信的accesstoken怎么嫒缓竺小时更新
  3. java 如何判断传过来的token是否过期

java jwt如何刷新过期时间

客户端

auth_header = JWT.encode({ user_id: 123, iat: Time.now.to_i, # 指定token发布时间
exp: Time.now.to_i + 2 # 指定token过期时间为2秒后,2秒时间足够一次HTTP请求,同时在一定程度确保上一次token过期,减少replay attack的概率;
}, "my shared secret")
RestClient.get("", authorization: auth_header)

服务端

class ApiController < ActionController::Base
  attr_reader :current_user
  before_action :set_current_user_from_jwt_token
  def set_current_user_from_jwt_token
    # Step 1:解码JWT,并获取User ID,这个时候不对Token签名进行检查
    # the signature. Note JWT tokens are *not* encrypted, but signed.
    payload = JWT.decode(request.authorization, nil, false)
    # Step 2: 检查该用户是否存在于数据库
    @current_user = User.find(payload['user_id'])
    # Step 3: 检查Token签名是否正确.
    JWT.decode(request.authorization, current_user.api_secret)
    # Step 4: 检查 "iat" 和"exp" 以确保这个Token是在2秒内创建的.
    now = Time.now.to_i
    if payload['iat'] > now || payload['exp'] < now # 如果过期则返回401
    end
  rescue JWT::DecodeError
    # 返回 401
  end
end

java微信的accesstoken怎么嫒缓竺小时更新

微信接口获取的access token 有效期是7200秒。很简单的方法就是你获取到之后,缓存到redis中,设置过期时间不超过7200秒,然后每当需要使用的时候先去redis拿,如果拿到了就直接用,没拿到就说明已经过期了,就再去微信获取一个新的,缓存到redis中。

java 如何判断传过来的token是否过期

简单的就是把token放到session里,如果会话过期,token也就会过期。 使用的时候只要判断当前会话是否有效,token是否与客户端传过来的token等就可以了。