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:
@@ -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",
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
62
packages/modules/link-modules/src/definitions/user-auth.ts
Normal file
62
packages/modules/link-modules/src/definitions/user-auth.ts
Normal 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",
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
Reference in New Issue
Block a user