HarvestConnect 1.0.0

Install-Package HarvestConnect -Version 1.0.0
dotnet add package HarvestConnect --version 1.0.0
<PackageReference Include="HarvestConnect" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HarvestConnect --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: HarvestConnect, 1.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install HarvestConnect as a Cake Addin
#addin nuget:?package=HarvestConnect&version=1.0.0

// Install HarvestConnect as a Cake Tool
#tool nuget:?package=HarvestConnect&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Harvest connect

Helper for authenticating via Harvest (https://www.getharvest.com)

How to use?

  1. Register a OAuth client over at https://<YOURACCOUNT>.harvestapp.com/oauth2_clients
  2. Install clone this repo and include it in your project.
  3. Use the code below to set it up.
 public void ConfigureServices(IServiceCollection services)
            services.AddAuthentication(options =>
                    options.DefaultAuthenticateScheme = HarvestOptions.Scheme;
                    options.DefaultChallengeScheme = HarvestOptions.Scheme;
                    options.DefaultSignInScheme = "auth";
                    options.DefaultSignOutScheme = "auth";
                .AddCookie("auth", options =>
                    options.LogoutPath = "/logout";
                .AddHarvest(options =>
                    options.ClientId = "<provided by Harvest>";
                    options.ClientSecret = "<provided by harvest>";
                    options.BaseUrl = "<base url of your site, e.g. http://localhost:13370>";
                    options.Events = new HarvestEvents
                        // Called on succesful login
                        OnSuccessfulLogin = context =>
                            // Add the claims your app requires...
                            context.Identity.AddClaim(new Claim(context.Identity.NameClaimType,

                            if (context.WhoAmI.user.admin)
                                context.Identity.AddClaim(new Claim(context.Identity.RoleClaimType, "Administrator"));

                            context.Identity.AddClaim(new Claim("Email", context.WhoAmI.user.email));

                            // ... or do other stuff with the data received, e.g.:
                            // await _db.UpdateAvatar(context.WhoAmI.user.id, context.WhoAmI.user.avatar_url);

                            return Task.CompletedTask;
                        // Called when login fails or the user denies the login attempt
                        OnFailedLogin = async context =>
                            await context.HttpContext.SignOutAsync();
                            context.HttpContext.Response.Redirect("/home/logout?message=" + WebUtility.UrlEncode(context.FailureMessage));

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 727 9/26/2017