Module: ActiveStorage::DirectUploadToken

Extended by:
DirectUploadToken
Included in:
DirectUploadToken, DirectUploadsController
Defined in:
lib/active_storage/direct_upload_token.rb

Constant Summary collapse

SEPARATOR =
"."
DIRECT_UPLOAD_TOKEN_LENGTH =
32

Instance Method Summary collapse

Instance Method Details

#generate_direct_upload_token(attachment_name, service_name, session) ⇒ Object



10
11
12
13
# File 'lib/active_storage/direct_upload_token.rb', line 10

def generate_direct_upload_token(attachment_name, service_name, session)
  token = direct_upload_token(session, attachment_name)
  encode_direct_upload_token([service_name, token].join(SEPARATOR))
end

#verify_direct_upload_token(token, attachment_name, session) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/active_storage/direct_upload_token.rb', line 15

def verify_direct_upload_token(token, attachment_name, session)
  raise ActiveStorage::InvalidDirectUploadTokenError if token.nil?

  service_name, *token_components = decode_token(token).split(SEPARATOR)
  decoded_token = token_components.join(SEPARATOR)

  return service_name if valid_direct_upload_token?(decoded_token, attachment_name, session)

  raise ActiveStorage::InvalidDirectUploadTokenError
end