slackProvider function

OAuthProvider<SlackProfile> slackProvider(
  1. SlackProviderOptions options
)

Implementation

OAuthProvider<SlackProfile> slackProvider(SlackProviderOptions options) {
  return OAuthProvider<SlackProfile>(
    id: 'slack',
    name: 'Slack',
    type: AuthProviderType.oidc,
    clientId: options.clientId,
    clientSecret: options.clientSecret,
    authorizationEndpoint: Uri.parse(
      'https://slack.com/openid/connect/authorize',
    ),
    tokenEndpoint: Uri.parse('https://slack.com/api/openid.connect.token'),
    userInfoEndpoint: Uri.parse(
      'https://slack.com/api/openid.connect.userInfo',
    ),
    redirectUri: options.redirectUri,
    scopes: options.scopes,
    profileParser: SlackProfile.fromJson,
    profileSerializer: (profile) => profile.toJson(),
    profile: (profile) {
      return AuthUser(
        id: profile.sub,
        name: profile.name,
        email: profile.email,
        image: profile.picture,
        attributes: profile.toJson(),
      );
    },
  );
}