private async void NameLoginWebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) { var uri = args.Uri; if (uri.ToString().StartsWith(this._oidcOptions.RedirectUri)) { var code = OidcOptions.GetCode(uri.Query); var httpClient = new HttpClient(); var tokenParams = new FormUrlEncodedContent(this._oidcOptions.BuildTokenParams(code)); var tokenReponse = await httpClient.PostAsync(this._oidcOptions.TokenEndpoint, tokenParams); var jsonText = await tokenReponse.Content.ReadAsStringAsync(); //todo:http://openid.net/specs/openid-connect-core-1_0.html#TokenResponseValidation var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("user-token.json", CreationCollisionOption.ReplaceExisting); using (var fileStream = await file.OpenStreamForWriteAsync()) { var jsonBytes = Encoding.UTF8.GetBytes(jsonText); fileStream.Write(jsonBytes, 0, jsonBytes.Length); } if (this.Frame.CanGoBack) { this.Frame.GoBack(); } } }
public OidcOptionsController( IOptions <SmtpOptions> smtpOptions, IOptionsSnapshot <OidcOptions> oidcOptions, IOptionsMonitor <JwtOptions> jwtOptions) { smtp = smtpOptions.Value; google = oidcOptions.Get(OidcProviders.Google); facebook = oidcOptions.Get(OidcProviders.Facebook); okta = oidcOptions.Get(OidcProviders.Okta); jwt = jwtOptions.CurrentValue; }