What I am trying to do
I am trying to implement Google OpenID Connect as a means to login to an ASP.NET Core 3.1 website using Google's instructions:
https://developers.google.com/identity/protocols/oauth2/openid-connect#server-flow
Under step 2 of the server flow (Send an authentication request to Google) they recommend retrieving information from their OpenID Discovery Document:
You should retrieve the base URI from the Discovery document using the
authorization_endpoint
metadata value.
I am currently trying to dynamically deserialize the JSON
to a Dictionary<string, string>
by using Newtonsoft.Json
. But it is giving me some issues (can't seem to deserialize a JSON string array
) and I am considering changing my strategy to creating a model
for the Discovery Document and using System.Text.Json
to deserialize.
Now my question is
How sensitive is Google's Discovery Document to changes that would lead to me having to update my DiscoveryDocument.cs model
?
Dilemma
With the Newtonsoft.Json
way everything will still work, even if Google decides to remove a random key.
But using the System.Text.Json
is the easy way out for me now and removes a dependency on the Newtonsoft library, though I may run into trouble later if Google's Discovery Document changes.