0
0
Fork 0

Implement RFC 8414 for OAuth 2.0 server metadata (#29191)

This commit is contained in:
Emelia Smith 2024-05-06 15:17:56 +02:00 committed by GitHub
parent 30ef9fccf0
commit 116f01ec7d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 137 additions and 0 deletions

View file

@ -0,0 +1,23 @@
# 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