From f1d3bc26f94f03e0f40d00da9658904233f8a721 Mon Sep 17 00:00:00 2001 From: Michael Angelo <55844504+michaelangrivera@users.noreply.github.com> Date: Tue, 6 Sep 2022 12:06:51 -0400 Subject: [PATCH] fix(providers): convert Strava Provider to TS (#5241) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update strava * add localhost fallback * lint & small updates * Update docs/versioned_docs/version-v3/providers/strava.md Co-authored-by: Lluis Agusti * fix * Delete yarn.lock * Apply suggestions from code review Co-authored-by: Lluis Agusti Co-authored-by: Balázs Orbán --- .../version-v3/providers/strava.md | 2 +- .../src/providers/{strava.js => strava.ts} | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) rename packages/next-auth/src/providers/{strava.js => strava.ts} (62%) diff --git a/docs/versioned_docs/version-v3/providers/strava.md b/docs/versioned_docs/version-v3/providers/strava.md index 3df758a90b..b2edece902 100644 --- a/docs/versioned_docs/version-v3/providers/strava.md +++ b/docs/versioned_docs/version-v3/providers/strava.md @@ -13,7 +13,7 @@ The **Strava Provider** comes with a set of default options: - [Strava Provider options](https://github.com/nextauthjs/next-auth/blob/main/src/providers/strava.js) -You can override any of the options to suit your own use case. +You can override any of the options to suit your own use case. Ensure the `redirect_uri` configuration fits your needs accordingly. ## Example diff --git a/packages/next-auth/src/providers/strava.js b/packages/next-auth/src/providers/strava.ts similarity index 62% rename from packages/next-auth/src/providers/strava.js rename to packages/next-auth/src/providers/strava.ts index a27f4f3f22..ce20b33c7a 100644 --- a/packages/next-auth/src/providers/strava.js +++ b/packages/next-auth/src/providers/strava.ts @@ -1,5 +1,15 @@ -/** @type {import(".").OAuthProvider} */ -export default function Strava(options) { +import type { OAuthConfig, OAuthUserConfig } from "." + +export interface StravaProfile extends Record { + id: string // this is really a number + firstname: string + lastname: string + profile: string +} + +export default function Strava

( + options: OAuthUserConfig

+): OAuthConfig

{ return { id: "strava", name: "Strava", @@ -10,7 +20,6 @@ export default function Strava(options) { scope: "read", approval_prompt: "auto", response_type: "code", - redirect_uri: "http://localhost:3000/api/auth/callback/strava", }, }, token: { @@ -20,11 +29,10 @@ export default function Strava(options) { client: { token_endpoint_auth_method: "client_secret_post", }, - profile(profile) { return { id: profile.id, - name: profile.firstname, + name: `${profile.firstname} ${profile.lastname}`, email: null, image: profile.profile, }