docs: fix callback validation for third-party authentication (#14109)
* docs: fix callback validation for third-party authentication * address comment
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
* label: Google Provider
|
||||
* source: |-
|
||||
* import Medusa from "@medusajs/js-sdk"
|
||||
* import { decodeToken } from "react-jwt"
|
||||
*
|
||||
* export const sdk = new Medusa({
|
||||
* baseUrl: import.meta.env.VITE_BACKEND_URL || "/",
|
||||
@@ -35,7 +36,7 @@
|
||||
* },
|
||||
* })
|
||||
*
|
||||
* await sdk.auth.callback(
|
||||
* const token = await sdk.auth.callback(
|
||||
* "user",
|
||||
* "google",
|
||||
* {
|
||||
@@ -43,23 +44,33 @@
|
||||
* state: "456"
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* // all subsequent requests will use the token in the header
|
||||
* sdk.admin.invite.accept(
|
||||
* {
|
||||
* email: "user@gmail.com",
|
||||
* first_name: "John",
|
||||
* last_name: "Smith",
|
||||
* invite_token: "12345..."
|
||||
* },
|
||||
* )
|
||||
* .then(({ user }) => {
|
||||
* console.log(user)
|
||||
* })
|
||||
*
|
||||
* const decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }
|
||||
*
|
||||
* const shouldCreateUser = decodedToken.actor_id === ""
|
||||
*
|
||||
* if (shouldCreateUser) {
|
||||
* const user = await sdk.admin.invite.accept(
|
||||
* {
|
||||
* email: decodedToken.user_metadata.email as string,
|
||||
* first_name: "John",
|
||||
* last_name: "Smith",
|
||||
* invite_token: "12345..."
|
||||
* },
|
||||
* )
|
||||
*
|
||||
* // refresh auth token
|
||||
* await sdk.auth.refresh()
|
||||
* // all subsequent requests will use the new token in the header
|
||||
* } else {
|
||||
* // User already exists and is authenticated
|
||||
* }
|
||||
* - lang: TypeScript
|
||||
* label: GitHub Provider
|
||||
* source: |-
|
||||
* import Medusa from "@medusajs/js-sdk"
|
||||
* import { decodeToken } from "react-jwt"
|
||||
*
|
||||
* export const sdk = new Medusa({
|
||||
* baseUrl: import.meta.env.VITE_BACKEND_URL || "/",
|
||||
@@ -69,27 +80,36 @@
|
||||
* },
|
||||
* })
|
||||
*
|
||||
* const authToken = await sdk.auth.callback(
|
||||
* const token = await sdk.auth.callback(
|
||||
* "user",
|
||||
* "google",
|
||||
* "github",
|
||||
* {
|
||||
* code: "123",
|
||||
* state: "456"
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* // all subsequent requests will use the token in the header
|
||||
* sdk.admin.invite.accept(
|
||||
* {
|
||||
* email: "user@gmail.com",
|
||||
* first_name: "John",
|
||||
* last_name: "Smith",
|
||||
* invite_token: "12345..."
|
||||
* },
|
||||
* )
|
||||
* .then(({ user }) => {
|
||||
* console.log(user)
|
||||
* })
|
||||
*
|
||||
* const decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }
|
||||
*
|
||||
* const shouldCreateUser = decodedToken.actor_id === ""
|
||||
*
|
||||
* if (shouldCreateUser) {
|
||||
* const user = await sdk.admin.invite.accept(
|
||||
* {
|
||||
* email: decodedToken.user_metadata.email as string,
|
||||
* first_name: "John",
|
||||
* last_name: "Smith",
|
||||
* invite_token: "12345..."
|
||||
* },
|
||||
* )
|
||||
*
|
||||
* // refresh auth token
|
||||
* await sdk.auth.refresh()
|
||||
* // all subsequent requests will use the new token in the header
|
||||
* } else {
|
||||
* // User already exists and is authenticated
|
||||
* }
|
||||
* tags:
|
||||
* - Auth
|
||||
* responses:
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
* label: Google Provider
|
||||
* source: |-
|
||||
* import Medusa from "@medusajs/js-sdk"
|
||||
* import { decodeToken } from "react-jwt"
|
||||
*
|
||||
* let MEDUSA_BACKEND_URL = "http://localhost:9000"
|
||||
*
|
||||
@@ -38,7 +39,7 @@
|
||||
* publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
|
||||
* })
|
||||
*
|
||||
* await sdk.auth.callback(
|
||||
* const token = await sdk.auth.callback(
|
||||
* "customer",
|
||||
* "google",
|
||||
* {
|
||||
@@ -46,16 +47,28 @@
|
||||
* state: "456"
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* // all subsequent requests will use the token in the header
|
||||
* const { customer } = await sdk.store.customer.create({
|
||||
* email: "customer@gmail.com",
|
||||
* password: "supersecret"
|
||||
* })
|
||||
*
|
||||
* const decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }
|
||||
*
|
||||
* const shouldCreateCustomer = decodedToken.actor_id === ""
|
||||
*
|
||||
* if (shouldCreateCustomer) {
|
||||
* const { customer } = await sdk.store.customer.create({
|
||||
* email: decodedToken.user_metadata.email as string,
|
||||
* })
|
||||
*
|
||||
* // refresh auth token
|
||||
* await sdk.auth.refresh()
|
||||
* // all subsequent requests will use the new token in the header
|
||||
* } else {
|
||||
* // Customer already exists and is authenticated
|
||||
* }
|
||||
* - lang: TypeScript
|
||||
* label: GitHub Provider
|
||||
* source: |-
|
||||
* import Medusa from "@medusajs/js-sdk"
|
||||
* import { decodeToken } from "react-jwt"
|
||||
*
|
||||
* let MEDUSA_BACKEND_URL = "http://localhost:9000"
|
||||
*
|
||||
@@ -69,7 +82,7 @@
|
||||
* publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
|
||||
* })
|
||||
*
|
||||
* await sdk.auth.callback(
|
||||
* const token = await sdk.auth.callback(
|
||||
* "customer",
|
||||
* "github",
|
||||
* {
|
||||
@@ -77,12 +90,23 @@
|
||||
* state: "456"
|
||||
* }
|
||||
* )
|
||||
*
|
||||
* // all subsequent requests will use the token in the header
|
||||
* const { customer } = await sdk.store.customer.create({
|
||||
* email: "customer@gmail.com",
|
||||
* password: "supersecret"
|
||||
* })
|
||||
*
|
||||
* const decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }
|
||||
*
|
||||
* const shouldCreateCustomer = decodedToken.actor_id === ""
|
||||
*
|
||||
* if (shouldCreateCustomer) {
|
||||
* const { customer } = await sdk.store.customer.create({
|
||||
* email: decodedToken.user_metadata.email as string,
|
||||
* })
|
||||
*
|
||||
* // refresh auth token
|
||||
* await sdk.auth.refresh()
|
||||
* // all subsequent requests will use the new token in the header
|
||||
* } else {
|
||||
* // Customer already exists and is authenticated
|
||||
* }
|
||||
* tags:
|
||||
* - Auth
|
||||
* responses:
|
||||
|
||||
Reference in New Issue
Block a user