Created
September 1, 2020 16:25
-
-
Save gistlyn/e4688038f36a67549e1a682b401c4aac to your computer and use it in GitHub Desktop.
auth-ext files
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dotnet add package ServiceStack.Extensions |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Microsoft.Extensions.DependencyInjection; | |
using ServiceStack; | |
using ServiceStack.Auth; | |
using ServiceStack.FluentValidation; | |
namespace MyApp | |
{ | |
// Add any additional metadata properties you want to store in the Users Typed Session | |
public class CustomUserSession : AuthUserSession | |
{ | |
} | |
// Custom Validator to add custom validators to built-in /register Service requiring DisplayName and ConfirmPassword | |
public class CustomRegistrationValidator : RegistrationValidator | |
{ | |
public CustomRegistrationValidator() | |
{ | |
RuleSet(ApplyTo.Post, () => | |
{ | |
RuleFor(x => x.DisplayName).NotEmpty(); | |
RuleFor(x => x.ConfirmPassword).NotEmpty(); | |
}); | |
} | |
} | |
public class ConfigureAuth : IConfigureAppHost, IConfigureServices | |
{ | |
public void Configure(IServiceCollection services) | |
{ | |
//services.AddSingleton<ICacheClient>(new MemoryCacheClient()); //Store User Sessions in Memory Cache (default) | |
} | |
public void Configure(IAppHost appHost) | |
{ | |
var AppSettings = appHost.AppSettings; | |
appHost.Plugins.Add(new AuthFeature(() => new CustomUserSession(), | |
new IAuthProvider[] { | |
new CredentialsAuthProvider(AppSettings), /* Sign In with Username / Password credentials */ | |
new AppleAuthProvider(AppSettings), /* Configure: https://developer.okta.com/blog/2019/06/04/what-the-heck-is-sign-in-with-apple */ | |
new FacebookAuthProvider(AppSettings), /* Create App https://developers.facebook.com/apps */ | |
new GoogleAuthProvider(AppSettings), /* Create App https://console.developers.google.com/apis/credentials */ | |
new MicrosoftGraphAuthProvider(AppSettings), /* Create App https://apps.dev.microsoft.com */ | |
})); | |
appHost.Plugins.Add(new RegistrationFeature()); //Enable /register Service | |
//override the default registration validation with your own custom implementation | |
appHost.RegisterAs<CustomRegistrationValidator, IValidator<Register>>(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment