mirror of
https://github.com/mastodon/mastodon
synced 2024-12-27 21:18:11 +09:00
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
|