ApiKeyAuthProvider
Enable access to protected Services using API Keys
Assembly: ServiceStack.dll
View Source
public class ApiKeyAuthProvider : AuthProvider, IAuthProvider, IAuthWithRequest, IAuthPlugin
Properties
Type
View Source
public override string Type { get; }
ServiceRoutes
Modify the registration of GetApiKeys and RegenerateApiKeys Services
View Source
public Dictionary<Type, string[]> ServiceRoutes { get; set; }
KeySizeBytes
How much entropy should the generated keys have. (default 24)
View Source
public int KeySizeBytes { get; set; }
Environments
Generate different keys for different environments. (default live,test)
View Source
public string[] Environments { get; set; }
KeyTypes
Different types of Keys each user can have. (default secret)
View Source
public string[] KeyTypes { get; set; }
ExpireKeysAfter
Whether to automatically expire keys. (default no expiry)
View Source
public TimeSpan? ExpireKeysAfter { get; set; }
InitSchema
Automatically create the ApiKey Table for AuthRepositories which need it. (default true)
View Source
public bool InitSchema { get; set; }
RequireSecureConnection
Whether to only allow access via API Key from a secure connection. (default true)
View Source
public bool RequireSecureConnection { get; set; }
GenerateApiKey
Change how API Key is generated
View Source
public CreateApiKeyDelegate GenerateApiKey { get; set; }
CreateApiKeyFilter
Run custom filter after API Key is created
View Source
public Action<ApiKey> CreateApiKeyFilter { get; set; }
SessionCacheDuration
Cache the User Session so it can be reused between subsequent API Key Requests
View Source
public TimeSpan? SessionCacheDuration { get; set; }
AllowInHttpParams
Whether to allow API Keys in 'apikey' QueryString or FormData
View Source
public bool AllowInHttpParams { get; set; }
Inherited Properties
AccountLockedValidator
View Source
public Func<IAuthRepository, IUserAuth, IAuthTokens, bool> AccountLockedValidator { get; set; }
AuthEvents
View Source
public IAuthEvents AuthEvents { get; }
AuthRealm
View Source
public string AuthRealm { get; set; }
CallbackUrl
View Source
public string CallbackUrl { get; set; }
CustomValidationFilter
View Source
public Func<AuthContext, IHttpResult> CustomValidationFilter { get; set; }
ExcludeAuthInfoItems
View Source
public HashSet<string> ExcludeAuthInfoItems { get; set; }
FormLayout
View Source
public List<InputInfo> FormLayout { get; set; }
Icon
View Source
public ImageInfo Icon { get; set; }
Label
View Source
public string Label { get; set; }
LoadUserAuthFilter
View Source
public Action<AuthUserSession, IAuthTokens, Dictionary<string, string>> LoadUserAuthFilter { get; set; }
LoadUserAuthInfoFilterAsync
View Source
public Func<AuthUserSession, IAuthTokens, Dictionary<string, string>, CancellationToken, Task> LoadUserAuthInfoFilterAsync { get; set; }
Meta
View Source
public virtual Dictionary<string, string> Meta { get; }
NavItem
View Source
public NavItem NavItem { get; set; }
PersistSession
View Source
public bool PersistSession { get; set; }
Provider
View Source
public string Provider { get; set; }
RedirectUrl
View Source
public string RedirectUrl { get; set; }
RestoreSessionFromState
View Source
public bool? RestoreSessionFromState { get; set; }
SaveExtendedUserInfo
View Source
public bool SaveExtendedUserInfo { get; set; }
SessionExpiry
View Source
public TimeSpan? SessionExpiry { get; set; }
Sort
View Source
public int Sort { get; set; }
Type
View Source
public virtual string Type { get; }
Fields
Name
View Source
public const string Name = "apikey"
Realm
View Source
public const string Realm = "/auth/apikey"
DefaultTypes
View Source
public static string[] DefaultTypes
DefaultEnvironments
View Source
public static string[] DefaultEnvironments
DefaultKeySizeBytes
View Source
public static int DefaultKeySizeBytes
Methods
Init(IAppSettings)
View Source
protected virtual void Init(IAppSettings appSettings = null)
Parameters
Type | Name |
---|---|
ServiceStack.Configuration.IAppSettings | appSettings |
CreateApiKey(String, String, Int32)
View Source
public virtual string CreateApiKey(string environment, string keyType, int sizeBytes)
Returns
System.String
Parameters
Type | Name |
---|---|
System.String | environment |
System.String | keyType |
System.Int32 | sizeBytes |
IsAuthorized(IAuthSession, IAuthTokens, Authenticate)
View Source
public override bool IsAuthorized(IAuthSession session, IAuthTokens tokens, Authenticate request = null)
Returns
System.Boolean
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Auth.IAuthTokens | tokens |
ServiceStack.Authenticate | request |
AuthenticateAsync(IServiceBase, IAuthSession, Authenticate, CancellationToken)
View Source
public override async Task<object> AuthenticateAsync(IServiceBase authService, IAuthSession session, Authenticate request, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task<System.Object>
Parameters
Type | Name |
---|---|
ServiceStack.IServiceBase | authService |
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Authenticate | request |
System.Threading.CancellationToken | token |
PreAuthenticateAsync(IRequest, IResponse)
View Source
public virtual async Task PreAuthenticateAsync(IRequest req, IResponse res)
Returns
System.Threading.Tasks.Task
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | req |
ServiceStack.Web.IResponse | res |
GetApiKeyAsync(IRequest, String)
View Source
protected virtual async Task<ApiKey> GetApiKeyAsync(IRequest req, string apiKey)
Returns
System.Threading.Tasks.Task<ServiceStack.Auth.ApiKey>
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | req |
System.String | apiKey |
ValidateApiKey(IRequest, ApiKey)
View Source
public virtual void ValidateApiKey(IRequest req, ApiKey apiKey)
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | req |
ServiceStack.Auth.ApiKey | apiKey |
PreAuthenticateWithApiKeyAsync(IRequest, IResponse, ApiKey)
View Source
public virtual async Task PreAuthenticateWithApiKeyAsync(IRequest req, IResponse res, ApiKey apiKey)
Returns
System.Threading.Tasks.Task
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | req |
ServiceStack.Web.IResponse | res |
ServiceStack.Auth.ApiKey | apiKey |
HasCachedSessionAsync(IRequest, String)
View Source
public virtual async Task<bool> HasCachedSessionAsync(IRequest req, string apiSessionKey)
Returns
System.Threading.Tasks.Task<System.Boolean>
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | req |
System.String | apiSessionKey |
CacheSessionAsync(IRequest, String)
View Source
public virtual async Task CacheSessionAsync(IRequest req, string apiSessionKey)
Returns
System.Threading.Tasks.Task
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | req |
System.String | apiSessionKey |
GetSessionKey(String)
View Source
public static string GetSessionKey(string apiKey)
Returns
System.String
Parameters
Type | Name |
---|---|
System.String | apiKey |
Register(IAppHost, AuthFeature)
View Source
public override void Register(IAppHost appHost, AuthFeature feature)
Parameters
Type | Name |
---|---|
ServiceStack.IAppHost | appHost |
ServiceStack.AuthFeature | feature |
OnFailedAuthentication(IAuthSession, IRequest, IResponse)
View Source
public override Task OnFailedAuthentication(IAuthSession session, IRequest httpReq, IResponse httpRes)
Returns
System.Threading.Tasks.Task
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Web.IRequest | httpReq |
ServiceStack.Web.IResponse | httpRes |
GenerateNewApiKeys(String, String[])
View Source
public List<ApiKey> GenerateNewApiKeys(string userId, params string[] environments)
Returns
System.Collections.Generic.List<ServiceStack.Auth.ApiKey>
Parameters
Type | Name |
---|---|
System.String | userId |
System.String[] | environments |
Inherited Methods
AuthenticateAsync(IServiceBase, IAuthSession, Authenticate, CancellationToken)
View Source
public abstract Task<object> AuthenticateAsync(IServiceBase authService, IAuthSession session, Authenticate request, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task<System.Object>
Parameters
Type | Name |
---|---|
ServiceStack.IServiceBase | authService |
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Authenticate | request |
System.Threading.CancellationToken | token |
ConvertToClientError(Object, Boolean)
View Source
protected virtual object ConvertToClientError(object failedResult, bool isHtml)
Returns
System.Object
Parameters
Type | Name |
---|---|
System.Object | failedResult |
System.Boolean | isHtml |
CreateAuthContext(IServiceBase, IAuthSession, IAuthTokens)
View Source
protected virtual AuthContext CreateAuthContext(IServiceBase authService = null, IAuthSession session = null, IAuthTokens tokens = null)
Returns
Parameters
Type | Name |
---|---|
ServiceStack.IServiceBase | authService |
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Auth.IAuthTokens | tokens |
CreateOrMergeAuthSession(IAuthSession, IAuthTokens)
View Source
public virtual string CreateOrMergeAuthSession(IAuthSession session, IAuthTokens tokens)
Returns
System.String
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Auth.IAuthTokens | tokens |
EmailAlreadyExistsAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)
View Source
protected virtual async Task<bool> EmailAlreadyExistsAsync(IAuthRepositoryAsync authRepo, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task<System.Boolean>
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthRepositoryAsync | authRepo |
ServiceStack.Auth.IUserAuth | userAuth |
ServiceStack.Auth.IAuthTokens | tokens |
System.Threading.CancellationToken | token |
FallbackConfig(String)
Allows specifying a global fallback config that if exists is formatted with the Provider as the first arg. E.g. this appSetting with the TwitterAuthProvider: oauth.CallbackUrl="http://localhost:11001/auth/{0}" Would result in: oauth.CallbackUrl="http://localhost:11001/auth/twitter"
View Source
protected string FallbackConfig(string fallback)
Returns
System.String
Parameters
Type | Name |
---|---|
System.String | fallback |
GetAuthRedirectUrl(IServiceBase, IAuthSession)
View Source
protected virtual string GetAuthRedirectUrl(IServiceBase authService, IAuthSession session)
Returns
System.String
Parameters
Type | Name |
---|---|
ServiceStack.IServiceBase | authService |
ServiceStack.Auth.IAuthSession | session |
GetAuthRepository(IRequest)
View Source
protected virtual IAuthRepository GetAuthRepository(IRequest req)
Returns
ServiceStack.Auth.IAuthRepository
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | req |
GetAuthRepositoryAsync(IRequest)
View Source
protected virtual IAuthRepositoryAsync GetAuthRepositoryAsync(IRequest req)
Returns
ServiceStack.Auth.IAuthRepositoryAsync
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | req |
GetReferrerUrl(IServiceBase, IAuthSession, Authenticate)
View Source
protected virtual string GetReferrerUrl(IServiceBase authService, IAuthSession session, Authenticate request = null)
Returns
System.String
Parameters
Type | Name |
---|---|
ServiceStack.IServiceBase | authService |
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Authenticate | request |
GetUserAuthRepositoryAsync(IRequest)
View Source
public IUserAuthRepositoryAsync GetUserAuthRepositoryAsync(IRequest request)
Returns
ServiceStack.Auth.IUserAuthRepositoryAsync
Parameters
Type | Name |
---|---|
ServiceStack.Web.IRequest | request |
IsAccountLockedAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)
View Source
public virtual Task<bool> IsAccountLockedAsync(IAuthRepositoryAsync authRepoAsync, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task<System.Boolean>
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthRepositoryAsync | authRepoAsync |
ServiceStack.Auth.IUserAuth | userAuth |
ServiceStack.Auth.IAuthTokens | tokens |
System.Threading.CancellationToken | token |
IsAuthorized(IAuthSession, IAuthTokens, Authenticate)
View Source
public abstract bool IsAuthorized(IAuthSession session, IAuthTokens tokens, Authenticate request = null)
Returns
System.Boolean
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Auth.IAuthTokens | tokens |
ServiceStack.Authenticate | request |
LoadUserAuthInfo(AuthUserSession, IAuthTokens, Dictionary<String, String>)
View Source
[Obsolete("Use LoadUserAuthInfoAsync")]
protected void LoadUserAuthInfo(AuthUserSession userSession, IAuthTokens tokens, Dictionary<string, string> authInfo)
Parameters
Type | Name |
---|---|
ServiceStack.AuthUserSession | userSession |
ServiceStack.Auth.IAuthTokens | tokens |
System.Collections.Generic.Dictionary<System.String,System.String> | authInfo |
LoadUserAuthInfoAsync(AuthUserSession, IAuthTokens, Dictionary<String, String>, CancellationToken)
View Source
protected virtual Task LoadUserAuthInfoAsync(AuthUserSession userSession, IAuthTokens tokens, Dictionary<string, string> authInfo, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task
Parameters
Type | Name |
---|---|
ServiceStack.AuthUserSession | userSession |
ServiceStack.Auth.IAuthTokens | tokens |
System.Collections.Generic.Dictionary<System.String,System.String> | authInfo |
System.Threading.CancellationToken | token |
LoginMatchesSession(IAuthSession, String)
View Source
protected static bool LoginMatchesSession(IAuthSession session, string userName)
Returns
System.Boolean
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthSession | session |
System.String | userName |
LogoutAsync(IServiceBase, Authenticate, CancellationToken)
Remove the Users Session
View Source
public virtual async Task<object> LogoutAsync(IServiceBase service, Authenticate request, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task<System.Object>
Parameters
Type | Name |
---|---|
ServiceStack.IServiceBase | service |
ServiceStack.Authenticate | request |
System.Threading.CancellationToken | token |
OnAuthenticatedAsync(IServiceBase, IAuthSession, IAuthTokens, Dictionary<String, String>, CancellationToken)
View Source
public virtual async Task<IHttpResult> OnAuthenticatedAsync(IServiceBase authService, IAuthSession session, IAuthTokens tokens, Dictionary<string, string> authInfo, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task<ServiceStack.Web.IHttpResult>
Parameters
Type | Name |
---|---|
ServiceStack.IServiceBase | authService |
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Auth.IAuthTokens | tokens |
System.Collections.Generic.Dictionary<System.String,System.String> | authInfo |
System.Threading.CancellationToken | token |
OnFailedAuthentication(IAuthSession, IRequest, IResponse)
View Source
public virtual Task OnFailedAuthentication(IAuthSession session, IRequest httpReq, IResponse httpRes)
Returns
System.Threading.Tasks.Task
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Web.IRequest | httpReq |
ServiceStack.Web.IResponse | httpRes |
Register(IAppHost, AuthFeature)
View Source
public virtual void Register(IAppHost appHost, AuthFeature feature)
Parameters
Type | Name |
---|---|
ServiceStack.IAppHost | appHost |
ServiceStack.AuthFeature | feature |
UrlFilter(AuthContext, String)
View Source
public static string UrlFilter(AuthContext provider, string url)
Returns
System.String
Parameters
Type | Name |
---|---|
ServiceStack.Auth.AuthContext | provider |
System.String | url |
UserNameAlreadyExistsAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)
View Source
protected virtual async Task<bool> UserNameAlreadyExistsAsync(IAuthRepositoryAsync authRepo, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task<System.Boolean>
Parameters
Type | Name |
---|---|
ServiceStack.Auth.IAuthRepositoryAsync | authRepo |
ServiceStack.Auth.IUserAuth | userAuth |
ServiceStack.Auth.IAuthTokens | tokens |
System.Threading.CancellationToken | token |
ValidateAccountAsync(IServiceBase, IAuthRepositoryAsync, IAuthSession, IAuthTokens, CancellationToken)
View Source
protected virtual async Task<IHttpResult> ValidateAccountAsync(IServiceBase authService, IAuthRepositoryAsync authRepo, IAuthSession session, IAuthTokens tokens, CancellationToken token = default(CancellationToken))
Returns
System.Threading.Tasks.Task<ServiceStack.Web.IHttpResult>
Parameters
Type | Name |
---|---|
ServiceStack.IServiceBase | authService |
ServiceStack.Auth.IAuthRepositoryAsync | authRepo |
ServiceStack.Auth.IAuthSession | session |
ServiceStack.Auth.IAuthTokens | tokens |
System.Threading.CancellationToken | token |