Example #1
0
        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();
                }
            }
        }
Example #2
0
        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;
        }