Skip to content

Commit

Permalink
docs: added documentation for the patreon oauth provider (#1211)
Browse files Browse the repository at this point in the history
Co-authored-by: Tom Papiernik <[email protected]>
  • Loading branch information
AUSBird and tomekpapiernik authored Feb 9, 2023
1 parent e7d00d9 commit 296a597
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 0 deletions.
89 changes: 89 additions & 0 deletions docs/kratos/social-signin/82_patreon.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
id: patreon
title: Add Patreon as a social sign-in provider in Ory
sidebar_label: Patreon
---

# Patreon

```mdx-code-block
import JsonnetWarning from '../../_common/jsonnetwarning.mdx'
```

Follow these steps to add Patreon as a social sign-in provider to your project using the Ory CLI:

1. Create a [Patreon OAuth2 client](https://www.patreon.com/portal/registration/register-clients).
2. In the client configuration, set the redirect URI to:

```shell
https://{project.slug}.projects.oryapis.com/self-service/methods/oidc/callback/patreon
```

3. Create a Jsonnet code snippet to map the desired claims to the Ory Identity schema.

```jsonnet
local claims = std.extVar('claims');
{
identity: {
traits: {
[if "email" in claims then "email" else null]: claims.email,
},
},
}
```

:::tip

Ory Identities supports the following Patreon claims: `Subject`, `Email`, `Name`, `GivenName`, `FamilyName`, `LastName`,
`Picture`. To learn more, read [Patreon OAuth docs.](https://docs.patreon.com/#apiv2-oauth)

:::

```mdx-code-block
<JsonnetWarning format="Jsonnet code snippets" use="data mapping" />
```

4. Encode the Jsonnet snippet with [Base64](https://www.base64encode.org/) or host it under an URL accessible to The Ory Network.

```shell
cat your-data-mapping.jsonnet | base64
```

5. Download the Ory Identities config from your project and save it to a file:

```shell
## List all available projects
ory list projects

## Get config
ory get identity-config {project-id} --format yaml > identity-config.yaml
```

6. Add the social sign-in provider configuration to the downloaded config. Add the Jsonnet snippet with mappings as a Base64
string or provide an URL to the file.

```yaml
selfservice:
methods:
oidc:
enabled: true
config:
providers:
- id: patreon # this is `<provider-id>` in the Authorization callback URL. DO NOT CHANGE IT ONCE SET!
provider: patreon
client_id: .... # Replace this with the OAuth2 Client ID provided by Patreon
client_secret: .... # Replace this with the OAuth2 Client Secret provided by Patreon
mapper_url: "base64://{YOUR_BASE64_ENCODED_JSONNET_HERE}"
# Alternatively, use an URL:
# mapper_url: https://storage.googleapis.com/abc-cde-prd/9cac9717f007808bf17f22ce7f4295c739604b183f05ac4afb4
scope:
- identity
- identity[email]
# Visit Patreon documentation for a full list of supported scopes: https://docs.patreon.com/#scopes
```

7. Update the Ory Identities configuration using the file you worked with:

```shell
ory update identity-config {project-id} --file identity-config.yaml
```
1 change: 1 addition & 0 deletions src/sidebar.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ module.exports = {
"kratos/social-signin/vk",
"kratos/social-signin/dingtalk",
"kratos/social-signin/lark",
"kratos/social-signin/patreon",
],
},
"kratos/social-signin/get-tokens",
Expand Down

0 comments on commit 296a597

Please sign in to comment.