Skip to main content

DiscordAuthProvider

Create an OAuth2 App at: https://discord.com/developers/applications The Apps Callback URL should match the CallbackUrl here. Discord OAuth2 info: https://discord.com/developers/docs/topics/oauth2 Discord OAuth2 Scopes from: https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes email: Basic info, plus will return email info from /users/@me API, this is the minimum required for ServiceStack integration.

Checking of email verification is enforced due to Discord not requiring verified emails.

Use oauth.discord.ClientId and oauth.discord.ClientSecret for Discord App settings.

Assembly: ServiceStack.dll​
View Source​
Declaration
public class DiscordAuthProvider : OAuth2Provider, IAuthPlugin, IOAuthProvider, IAuthProvider

Inherited Properties​

ResolveUnknownDisplayName​

Custom DisplayName resolver function when not provided

View Source​
Declaration
public Func<IAuthSession, IAuthTokens, string> ResolveUnknownDisplayName { get; set; }

ResponseMode​

View Source​
Declaration
public string ResponseMode { get; set; }

Scopes​

View Source​
Declaration
public string[] Scopes { get; set; }

Fields​

Name​

View Source​
Declaration
public const string Name = "discord"

Realm​

View Source​
Declaration
public static string Realm

Methods​

GetAccessTokenJsonAsync(String, AuthContext, CancellationToken)​

View Source​
Declaration
protected override async Task<string> GetAccessTokenJsonAsync(string code, AuthContext ctx, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.String>

Parameters​
TypeName
System.Stringcode
ServiceStack.Auth.AuthContextctx
System.Threading.CancellationTokentoken

CreateAuthInfoAsync(String, CancellationToken)​

View Source​
Declaration
protected override async Task<Dictionary<string, string>> CreateAuthInfoAsync(string accessToken, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Collections.Generic.Dictionary<System.String,System.String>>

Parameters​
TypeName
System.StringaccessToken
System.Threading.CancellationTokentoken

Inherited Methods​

AssertAccessTokenUrl()​

View Source​
Declaration
protected virtual void AssertAccessTokenUrl()

AssertAuthorizeUrl()​

View Source​
Declaration
protected virtual void AssertAuthorizeUrl()

AssertValidState()​

View Source​
Declaration
protected override void AssertValidState()

AuthenticateAsync(IServiceBase, IAuthSession, Authenticate, CancellationToken)​

View Source​
Declaration
public override async Task<object> AuthenticateAsync(IServiceBase authService, IAuthSession session, Authenticate request, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Object>

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Authenticaterequest
System.Threading.CancellationTokentoken

AuthenticateWithAccessTokenAsync(IServiceBase, IAuthSession, IAuthTokens, String, Dictionary<String, String>, CancellationToken)​

View Source​
Declaration
protected virtual async Task<object> AuthenticateWithAccessTokenAsync(IServiceBase authService, IAuthSession session, IAuthTokens tokens, string accessToken, Dictionary<string, string> authInfo = null, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Object>

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
System.StringaccessToken
System.Collections.Generic.Dictionary<System.String,System.String>authInfo
System.Threading.CancellationTokentoken

CreateAuthInfoAsync(String, CancellationToken)​

View Source​
Declaration
protected abstract Task<Dictionary<string, string>> CreateAuthInfoAsync(string accessToken, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Collections.Generic.Dictionary<System.String,System.String>>

Parameters​
TypeName
System.StringaccessToken
System.Threading.CancellationTokentoken

GetAccessTokenJsonAsync(String, AuthContext, CancellationToken)​

View Source​
Declaration
protected virtual async Task<string> GetAccessTokenJsonAsync(string code, AuthContext ctx, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.String>

Parameters​
TypeName
System.Stringcode
ServiceStack.Auth.AuthContextctx
System.Threading.CancellationTokentoken

GetUserAuthName(IAuthTokens, Dictionary<String, String>)​

Override to return User chosen username or Email for this AuthProvider

View Source​
Declaration
protected virtual string GetUserAuthName(IAuthTokens tokens, Dictionary<string, string> authInfo)
Returns​

System.String

Parameters​
TypeName
ServiceStack.Auth.IAuthTokenstokens
System.Collections.Generic.Dictionary<System.String,System.String>authInfo

LoadUserAuthInfoAsync(AuthUserSession, IAuthTokens, Dictionary<String, String>, CancellationToken)​

View Source​
Declaration
protected override Task LoadUserAuthInfoAsync(AuthUserSession userSession, IAuthTokens tokens, Dictionary<string, string> authInfo, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task

Parameters​
TypeName
ServiceStack.AuthUserSessionuserSession
ServiceStack.Auth.IAuthTokenstokens
System.Collections.Generic.Dictionary<System.String,System.String>authInfo
System.Threading.CancellationTokentoken

LoadUserOAuthProviderAsync(IAuthSession, IAuthTokens)​

View Source​
Declaration
public override Task LoadUserOAuthProviderAsync(IAuthSession authSession, IAuthTokens tokens)
Returns​

System.Threading.Tasks.Task

Parameters​
TypeName
ServiceStack.Auth.IAuthSessionauthSession
ServiceStack.Auth.IAuthTokenstokens

Implements​