Show / Hide Table of Contents

Class PKCEOAuthFlow

Object used to execute OAuth through PKCE Use this object to maintain code verifier and challenge using S256 method.

Inheritance
System.Object
PKCEOAuthFlow
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Dropbox.Api
Assembly: Dropbox.Api.dll
Syntax
public class PKCEOAuthFlow

Constructors

| Improve this Doc View Source

PKCEOAuthFlow()

Initializes a new instance of the PKCEOAuthFlow class. Default constructor that also generates code verifier and code challenge to be used in PKCE flow.

Declaration
public PKCEOAuthFlow()

Methods

| Improve this Doc View Source

GetAuthorizeUri(OAuthResponseType, String, String, String, Boolean, Boolean, String, Boolean, TokenAccessType, String[], IncludeGrantedScopes)

Gets the URI used to start the OAuth2.0 authorization flow. Passes in codeChallenge generated in this class.

Declaration
public Uri GetAuthorizeUri(OAuthResponseType oauthResponseType, string clientId, string redirectUri = null, string state = null, bool forceReapprove = false, bool disableSignup = false, string requireRole = null, bool forceReauthentication = false, TokenAccessType tokenAccessType = TokenAccessType.Legacy, string[] scopeList = null, IncludeGrantedScopes includeGrantedScopes = IncludeGrantedScopes.None)
Parameters
Type Name Description
OAuthResponseType oauthResponseType

The grant type requested, either Token or Code.

System.String clientId

The apps key, found in the App Console.

System.String redirectUri

Where to redirect the user after authorization has completed. This must be the exact URI registered in the App Console; even localhost must be listed if it is used for testing. A redirect URI is required for a token flow, but optional for code. If the redirect URI is omitted, the code will be presented directly to the user and they will be invited to enter the information in your app.

System.String state

Up to 500 bytes of arbitrary data that will be passed back to redirectUri. This parameter should be used to protect against cross-site request forgery (CSRF).

System.Boolean forceReapprove

Whether or not to force the user to approve the app again if they've already done so. If false (default), a user who has already approved the application may be automatically redirected to redirectUriIf true, the user will not be automatically redirected and will have to approve the app again.

System.Boolean disableSignup

When true (default is false) users will not be able to sign up for a Dropbox account via the authorization page. Instead, the authorization page will show a link to the Dropbox iOS app in the App Store. This is only intended for use when necessary for compliance with App Store policies.

System.String requireRole

If this parameter is specified, the user will be asked to authorize with a particular type of Dropbox account, either work for a team account or personal for a personal account. Your app should still verify the type of Dropbox account after authorization since the user could modify or remove the require_role parameter.

System.Boolean forceReauthentication

If true, users will be signed out if they are currently signed in. This will make sure the user is brought to a page where they can create a new account or sign in to another account. This should only be used when there is a definite reason to believe that the user needs to sign in to a new or different account.

TokenAccessType tokenAccessType

Determines the type of token to request. See TokenAccessType for information on specific types available. If none is specified, this will use the legacy type.

System.String[] scopeList

list of scopes to request in base oauth flow. If left blank, will default to all scopes for app.

IncludeGrantedScopes includeGrantedScopes

which scopes to include from previous grants. Note: if this user has never linked the app, include_granted_scopes must be None.

Returns
Type Description
System.Uri

The uri of a web page which must be displayed to the user in order to authorize the app.

| Improve this Doc View Source

ProcessCodeFlowAsync(String, String, String, HttpClient)

Processes the second half of the OAuth 2.0 code flow. Uses the codeVerifier created in this class to execute the second half.

Declaration
public Task<OAuth2Response> ProcessCodeFlowAsync(string code, string appKey, string redirectUri = null, HttpClient client = null)
Parameters
Type Name Description
System.String code

The code acquired in the query parameters of the redirect from the initial authorize url.

System.String appKey

The application key, found in the App Console.

System.String redirectUri

The redirect URI that was provided in the initial authorize URI, this is only used to validate that it matches the original request, it is not used to redirect again.

HttpClient client

An optional http client instance used to make requests.

Returns
Type Description
System.Threading.Tasks.Task<OAuth2Response>

The authorization response, containing the access token and uid of the authorized user.

| Improve this Doc View Source

ProcessCodeFlowAsync(Uri, String, String, String, HttpClient)

Processes the second half of the OAuth 2.0 code flow. Uses the codeVerifier created in this class to execute second half.

Declaration
public Task<OAuth2Response> ProcessCodeFlowAsync(Uri responseUri, string appKey, string redirectUri = null, string state = null, HttpClient client = null)
Parameters
Type Name Description
System.Uri responseUri

The URI to which the user was redirected after the initial authorization request.

System.String appKey

The application key, found in the App Console.

System.String redirectUri

The redirect URI that was provided in the initial authorize URI, this is only used to validate that it matches the original request, it is not used to redirect again.

System.String state

The state parameter (if any) that matches that used in the initial authorize URI.

HttpClient client

An optional http client instance used to make requests.

Returns
Type Description
System.Threading.Tasks.Task<OAuth2Response>

The authorization response, containing the access token and uid of the authorized user.

  • Improve this Doc
  • View Source
In This Article
  • Constructors
    • PKCEOAuthFlow()
  • Methods
    • GetAuthorizeUri(OAuthResponseType, String, String, String, Boolean, Boolean, String, Boolean, TokenAccessType, String[], IncludeGrantedScopes)
    • ProcessCodeFlowAsync(String, String, String, HttpClient)
    • ProcessCodeFlowAsync(Uri, String, String, String, HttpClient)
Back to top Generated by DocFX