[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eAuthorizationCodeInstalledApp\u003c/code\u003e class provides a thread-safe OAuth 2.0 authorization code flow specifically designed for installed applications that require persistent end-user credentials.\u003c/p\u003e\n"],["\u003cp\u003eThis class implements the \u003ccode\u003eIAuthorizationCodeInstalledApp\u003c/code\u003e interface and inherits members from the \u003ccode\u003eobject\u003c/code\u003e class, allowing for standard object operations and interactions.\u003c/p\u003e\n"],["\u003cp\u003eThe constructor \u003ccode\u003eAuthorizationCodeInstalledApp(IAuthorizationCodeFlow, ICodeReceiver)\u003c/code\u003e initializes the application with a specified authorization code flow and a code receiver.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eAuthorizeAsync\u003c/code\u003e method is used to asynchronously obtain access to a user's protected data, utilizing a user identifier and a cancellation token.\u003c/p\u003e\n"],["\u003cp\u003eThe method \u003ccode\u003eShouldRequestAuthorizationCode\u003c/code\u003e checks if a new authorization code needs to be retrieved based on the current token and the flow's requirements.\u003c/p\u003e\n"]]],[],null,["# Class AuthorizationCodeInstalledApp (1.69.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.69.0 (latest)](/dotnet/docs/reference/Google.Apis/latest/Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp)\n- [1.68.0](/dotnet/docs/reference/Google.Apis/1.68.0/Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp)\n- [1.60.0](/dotnet/docs/reference/Google.Apis/1.60.0/Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp)\n- [1.59.0](/dotnet/docs/reference/Google.Apis/1.59.0/Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp)\n- [1.55.0](/dotnet/docs/reference/Google.Apis/1.55.0/Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp)\n- [1.50.0](/dotnet/docs/reference/Google.Apis/1.50.0/Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp) \n\n public class AuthorizationCodeInstalledApp : IAuthorizationCodeInstalledApp\n\nThread-safe OAuth 2.0 authorization code flow for an installed application that persists end-user credentials. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e AuthorizationCodeInstalledApp \n\nImplements\n----------\n\n[IAuthorizationCodeInstalledApp](/dotnet/docs/reference/Google.Apis/latest/Google.Apis.Auth.OAuth2.IAuthorizationCodeInstalledApp) \n\nInherited Members\n-----------------\n\n[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)) \n[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Apis.Auth.OAuth2](/dotnet/docs/reference/Google.Apis/latest/Google.Apis.Auth.OAuth2)\n\nAssembly\n--------\n\nGoogle.Apis.Auth.dll\n\nRemarks\n-------\n\nIncremental authorization (\u003chttps://developers.google.com/+/web/api/rest/oauth\u003e) is currently not supported\nfor Installed Apps.\n\nConstructors\n------------\n\n### AuthorizationCodeInstalledApp(IAuthorizationCodeFlow, ICodeReceiver)\n\n public AuthorizationCodeInstalledApp(IAuthorizationCodeFlow flow, ICodeReceiver codeReceiver)\n\nConstructs a new authorization code installed application with the given flow and code receiver.\n\nProperties\n----------\n\n### CodeReceiver\n\n public ICodeReceiver CodeReceiver { get; }\n\nGets the code receiver which is responsible for receiving the authorization code.\n\n### Flow\n\n public IAuthorizationCodeFlow Flow { get; }\n\nGets the authorization code flow.\n\nMethods\n-------\n\n### AuthorizeAsync(string, CancellationToken)\n\n public Task\u003cUserCredential\u003e AuthorizeAsync(string userId, CancellationToken taskCancellationToken)\n\nAsynchronously authorizes the installed application to access user's protected data.\n\n### ShouldRequestAuthorizationCode(TokenResponse)\n\n public bool ShouldRequestAuthorizationCode(TokenResponse token)\n\nDetermines the need for retrieval of a new authorization code, based on the given token and the\nauthorization code flow.\n\nExtension Method\n----------------\n\n[Utilities.ThrowIfNull\\\u003cT\\\u003e(T, string)](/dotnet/docs/reference/Google.Apis/latest/Google.Apis.Util.Utilities#Google_Apis_Util_Utilities_ThrowIfNull__1___0_System_String_)"]]