Revamp the authentication setup (#7419)

* feat: Add email pass authentication provider package

* feat: Revamp auth module and remove concept of scope

* feat: Revamp the auth module to be more standardized in how providers are loaded

* feat: Switch from scope to actor type for authentication

* feat: Add support for per-actor auth methods

* feat: Add emailpass auth provider by default

* fix: Add back app_metadata in auth module
This commit is contained in:
Stevche Radevski
2024-05-23 20:56:40 +02:00
committed by GitHub
parent 7b0cfe3b77
commit 8a070d5d85
100 changed files with 991 additions and 1005 deletions

View File

@@ -43,14 +43,13 @@ medusaIntegrationTestRunner({
await authService.create({
provider: "emailpass",
entity_id: email,
scope: "admin",
provider_metadata: {
password: passwordHash,
},
})
const response = await api
.post(`/auth/admin/emailpass`, {
.post(`/auth/user/emailpass`, {
email: email,
password: password,
})
@@ -75,14 +74,13 @@ medusaIntegrationTestRunner({
await authService.create({
provider: "emailpass",
entity_id: email,
scope: "admin",
provider_metadata: {
password: passwordHash,
},
})
const error = await api
.post(`/auth/admin/emailpass`, {
.post(`/auth/user/emailpass`, {
email: email,
password: "incorrect-password",
})
@@ -101,7 +99,7 @@ medusaIntegrationTestRunner({
).toString("base64")
const error = await api
.post(`/auth/admin/emailpass`, {
.post(`/auth/user/emailpass`, {
email: "should-not-exist",
password: "should-not-exist",
})

View File

@@ -38,7 +38,6 @@ medusaIntegrationTestRunner({
const authIdentity = await authService.create({
entity_id: "store_user",
provider: "emailpass",
scope: "store",
})
const token = jwt.sign(authIdentity, http.jwtSecret)

View File

@@ -27,7 +27,7 @@ medusaIntegrationTestRunner({
})
it("should fail to accept an invite with an invalid invite token", async () => {
const authResponse = await api.post(`/auth/admin/emailpass`, {
const authResponse = await api.post(`/auth/user/emailpass`, {
email: "potential_member@test.com",
password: "supersecret",
})
@@ -58,7 +58,7 @@ medusaIntegrationTestRunner({
email: "potential_member@test.com",
})
const authResponse = await api.post(`/auth/admin/emailpass`, {
const authResponse = await api.post(`/auth/user/emailpass`, {
email: "potential_member@test.com",
password: "supersecret",
})
@@ -92,7 +92,7 @@ medusaIntegrationTestRunner({
email: "potential_member@test.com",
})
const authResponse = await api.post(`/auth/admin/emailpass`, {
const authResponse = await api.post(`/auth/user/emailpass`, {
email: "some-email@test.com",
password: "supersecret",
})

View File

@@ -25,7 +25,6 @@ export const createAuthenticatedCustomer = async (
const authIdentity = await authService.create({
entity_id: "store_user",
provider: "emailpass",
scope: "store",
})
// Ideally we simulate a signup process than manually linking here.
@@ -45,8 +44,6 @@ export const createAuthenticatedCustomer = async (
actor_id: customer.id,
actor_type: "customer",
auth_identity_id: authIdentity.id,
scope: "store",
app_metadata: {},
},
http.jwtSecret
)

View File

@@ -47,22 +47,7 @@ module.exports = {
medusa_v2: enableMedusaV2,
},
modules: {
[Modules.AUTH]: {
scope: "internal",
resources: "shared",
resolve: "@medusajs/auth",
options: {
providers: [
{
name: "emailpass",
scopes: {
admin: {},
store: {},
},
},
],
},
},
[Modules.AUTH]: true,
[Modules.USER]: {
scope: "internal",
resources: "shared",