Exemple #1
0
        public Task <string> RequestBalancesPopup()
        {
            // generate CSRF token
            var csrfToken = Util.Nonce();

            // generate a reference ID for the token
            var refId = Util.Nonce();

            // generate Redirect Url
            var redirectUrl =
                string.Format("{0}://{1}/{2}", Request.Url.Scheme, Request.Url.Authority, "fetch-balances");

            // set CSRF token in browser cookie
            Response.Cookies.Add(new HttpCookie("csrf_token")
            {
                Value = csrfToken
            });

            return(GetPfmMember().FlatMap(mem => mem.GetFirstAlias()
                                          .FlatMap(alias => mem.StoreTokenRequest(
                                                       // Create a token request to be stored
                                                       TokenRequest.AccessTokenRequestBuilder(ResourceType.Accounts, ResourceType.Balances)
                                                       .SetToMemberId(mem.MemberId())
                                                       .SetToAlias(alias)
                                                       .SetRefId(refId)
                                                       .SetRedirectUrl(redirectUrl)
                                                       .SetCsrfToken(csrfToken)
                                                       .Build()))
                                          // generate the Token request URL to redirect to
                                          .FlatMap(requestId => tokenClient.GenerateTokenRequestUrl(requestId))));
        }
Exemple #2
0
 /// <summary>
 /// Stores a token request to be retrieved later (possibly by another member).
 /// </summary>
 /// <param name="tokenRequest">the token request</param>
 /// <returns>an id to reference the token request</returns>
 public string StoreTokenRequestBlocking(TokenRequest tokenRequest)
 {
     return(StoreTokenRequest(tokenRequest).Result);
 }
Exemple #3
0
 /// <summary>
 /// Stores a token request. This can be retrieved later by the token request id.
 /// </summary>
 /// <param name="tokenRequest">the token request</param>
 /// <returns>an id to reference the token request</returns>
 public Task <string> StoreTokenRequest(TokenRequest tokenRequest)
 {
     return(client.StoreTokenRequest(
                tokenRequest.GetTokenRequestPayload(),
                tokenRequest.GetTokenRequestOptions()));
 }