module TokenValidate
  extend ActiveSupport::Concern
  ACCESS_TOEKN_EXPIRE_TIME = 7200
    
  def validate_token(app_name, token)
    !! (token == get_token(app_name))
  end

  def token_ttl(app_name)
    $redis.ttl(tkey(app_name))
  end

  def generate_token(app_name)
    token = SecureRandom.hex(32)
    $redis.set(tkey(app_name), token, ex: ACCESS_TOEKN_EXPIRE_TIME)
    token
  end

  private

  def tkey(app_name)
    "push:api:#{app_name}:access_token"
  end

  def get_token(app_name)
    $redis.get(tkey(app_name))
  end

end