24 lines
789 B
Ruby
24 lines
789 B
Ruby
# frozen_string_literal: true
|
|
|
|
module WellKnown
|
|
class OauthMetadataController < ActionController::Base # rubocop:disable Rails/ApplicationController
|
|
include CacheConcern
|
|
|
|
# Prevent `active_model_serializer`'s `ActionController::Serialization` from calling `current_user`
|
|
# and thus re-issuing session cookies
|
|
serialization_scope nil
|
|
|
|
def show
|
|
# Due to this document potentially changing between Mastodon versions (as
|
|
# new OAuth scopes are added), we don't use expires_in to cache upstream,
|
|
# instead just caching in the rails cache:
|
|
render_with_cache(
|
|
json: ::OauthMetadataPresenter.new,
|
|
serializer: ::OauthMetadataSerializer,
|
|
content_type: 'application/json',
|
|
expires_in: 15.minutes
|
|
)
|
|
end
|
|
end
|
|
end
|