feat(auth): Revamp authentication setup (#7387)

* chore: Clean up authentication middlewares

* chore: Rename AuthUser to AuthIdentity

* feat: Define link between user, customer, and auth identity

* feat: Use links for auth, update auth context content

* fix: Adjust user create command with new auth setup

* fix: Make auth login more dynamic, review fixes

* fix: Change test assertions for created by
This commit is contained in:
Stevche Radevski
2024-05-22 10:27:32 +02:00
committed by GitHub
parent b7df447682
commit 5ede560f70
88 changed files with 887 additions and 1014 deletions

View File

@@ -0,0 +1,62 @@
import { Modules } from "@medusajs/modules-sdk"
import { ModuleJoinerConfig } from "@medusajs/types"
import { LINKS } from "@medusajs/utils"
export const CustomerAuth: ModuleJoinerConfig = {
serviceName: LINKS.CustomerAuth,
isLink: true,
databaseConfig: {
tableName: "customer_auth_identity",
idPrefix: "cusauth",
},
alias: [
{
name: "customer_auth_identity",
},
{
name: "customer_auth_identities",
},
],
primaryKeys: ["id", "customer_id", "auth_identity_id"],
relationships: [
{
serviceName: Modules.CUSTOMER,
primaryKey: "id",
foreignKey: "customer_id",
alias: "customer",
},
{
serviceName: Modules.AUTH,
isInternalService: true,
primaryKey: "id",
foreignKey: "auth_identity_id",
alias: "auth",
},
],
extends: [
{
serviceName: Modules.CUSTOMER,
fieldAlias: {
auth_identity: "auth_link.auth_identity",
},
relationship: {
serviceName: LINKS.CustomerAuth,
primaryKey: "customer_id",
foreignKey: "id",
alias: "auth_link",
},
},
{
serviceName: Modules.AUTH,
fieldAlias: {
customer: "customer_link.customer",
},
relationship: {
serviceName: LINKS.CustomerAuth,
primaryKey: "auth_identity_id",
foreignKey: "id",
alias: "customer_link",
},
},
],
}

View File

@@ -14,3 +14,5 @@ export * from "./region-payment-provider"
export * from "./sales-channel-location"
export * from "./shipping-option-price-set"
export * from "./order-fulfillment"
export * from "./user-auth"
export * from "./customer-auth"

View File

@@ -0,0 +1,62 @@
import { Modules } from "@medusajs/modules-sdk"
import { ModuleJoinerConfig } from "@medusajs/types"
import { LINKS } from "@medusajs/utils"
export const UserAuth: ModuleJoinerConfig = {
serviceName: LINKS.UserAuth,
isLink: true,
databaseConfig: {
tableName: "user_auth_identity",
idPrefix: "usrauth",
},
alias: [
{
name: "user_auth_identity",
},
{
name: "user_auth_identities",
},
],
primaryKeys: ["id", "user_id", "auth_identity_id"],
relationships: [
{
serviceName: Modules.USER,
primaryKey: "id",
foreignKey: "user_id",
alias: "user",
},
{
serviceName: Modules.AUTH,
isInternalService: true,
primaryKey: "id",
foreignKey: "auth_identity_id",
alias: "auth",
},
],
extends: [
{
serviceName: Modules.USER,
fieldAlias: {
auth_identity: "auth_link.auth_identity",
},
relationship: {
serviceName: LINKS.UserAuth,
primaryKey: "user_id",
foreignKey: "id",
alias: "auth_link",
},
},
{
serviceName: Modules.AUTH,
fieldAlias: {
user: "user_link.user",
},
relationship: {
serviceName: LINKS.UserAuth,
primaryKey: "auth_identity_id",
foreignKey: "id",
alias: "user_link",
},
},
],
}