Merge remote-tracking branch 'origin/master' into develop

This commit is contained in:
Sebastian Rindom committed 2021-10-24 14:08:45 +02:00
commit 531075208f
7 files changed
+55 -9

No files matched your search

@@ -264,4 +264,33 @@ describe("/store/customers", () => {
expect(response.data.customer.billing_address_id).toEqual(null) expect(response.data.customer.billing_address_id).toEqual(null)
}) })
}) })
describe("POST /store/customers/password-token", () => {
beforeEach(async () => {
const manager = dbConnection.manager
await manager.insert(Customer, {
id: "test_customer",
first_name: "John",
last_name: "Deere",
email: "john@deere.com",
password_hash:
"c2NyeXB0AAEAAAABAAAAAVMdaddoGjwU1TafDLLlBKnOTQga7P2dbrfgf3fB+rCD/cJOMuGzAvRdKutbYkVpuJWTU39P7OpuWNkUVoEETOVLMJafbI8qs8Qx/7jMQXkN", // password matching "test"
has_account: true,
})
})
afterEach(async () => {
await doAfterEach()
})
it("creates token", async () => {
const api = useApi()
const response = await api.post(`/store/customers/password-token`, {
email: "john@deere.com",
})
expect(response.status).toEqual(204)
})
})
}) })
+6
View File
@@ -3,6 +3,12 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.1.47](https://github.com/medusajs/medusa/compare/@medusajs/medusa@1.1.46...@medusajs/medusa@1.1.47) (2021-10-23)
### Bug Fixes
- pull missing fields ([b82b43b](https://github.com/medusajs/medusa/commit/b82b43b4c64dc5bc705a439a214f9d1dc9976e21))
## [1.1.46](https://github.com/medusajs/medusa/compare/@medusajs/medusa@1.1.45...@medusajs/medusa@1.1.46) (2021-10-19) ## [1.1.46](https://github.com/medusajs/medusa/compare/@medusajs/medusa@1.1.45...@medusajs/medusa@1.1.46) (2021-10-19)
### Bug Fixes ### Bug Fixes
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@medusajs/medusa", "name": "@medusajs/medusa",
"version": "1.1.46", "version": "1.1.47",
"description": "E-commerce for JAMstack", "description": "E-commerce for JAMstack",
"main": "dist/index.js", "main": "dist/index.js",
"bin": { "bin": {
@@ -24,7 +24,9 @@ import jwt from "jsonwebtoken"
*/ */
export default async (req, res) => { export default async (req, res) => {
const schema = Validator.object().keys({ const schema = Validator.object().keys({
email: Validator.string().email().required(), email: Validator.string()
.email()
.required(),
token: Validator.string().required(), token: Validator.string().required(),
password: Validator.string().required(), password: Validator.string().required(),
}) })
@@ -34,11 +36,12 @@ export default async (req, res) => {
throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details) throw new MedusaError(MedusaError.Types.INVALID_DATA, error.details)
} }
try {
const customerService = req.scope.resolve("customerService") const customerService = req.scope.resolve("customerService")
let customer = await customerService.retrieveByEmail(value.email) let customer = await customerService.retrieveByEmail(value.email, {
select: ["id", "password_hash"],
})
const decodedToken = await jwt.verify(value.token, customer.password_hash) const decodedToken = jwt.verify(value.token, customer.password_hash)
if (!decodedToken || customer.id !== decodedToken.customer_id) { if (!decodedToken || customer.id !== decodedToken.customer_id) {
res.status(401).send("Invalid or expired password reset token") res.status(401).send("Invalid or expired password reset token")
return return
@@ -50,7 +53,4 @@ export default async (req, res) => {
customer = await customerService.retrieve(customer.id) customer = await customerService.retrieve(customer.id)
res.status(200).json({ customer }) res.status(200).json({ customer })
} catch (error) {
throw error
}
} }
@@ -17,6 +17,7 @@ async function loadProductsIntoSearchEngine(container) {
select: [ select: [
"id", "id",
"title", "title",
"status",
"subtitle", "subtitle",
"description", "description",
"handle", "handle",
+10 -1
View File
@@ -94,7 +94,16 @@ class CustomerService extends BaseService {
* @return {string} the generated JSON web token * @return {string} the generated JSON web token
*/ */
async generateResetPasswordToken(customerId) { async generateResetPasswordToken(customerId) {
const customer = await this.retrieve(customerId) const customer = await this.retrieve(customerId, {
select: [
"id",
"has_account",
"password_hash",
"email",
"first_name",
"last_name",
],
})
if (!customer.has_account) { if (!customer.has_account) {
throw new MedusaError( throw new MedusaError(
@@ -6,6 +6,7 @@ const searchFields = [
"id", "id",
"title", "title",
"subtitle", "subtitle",
"status",
"description", "description",
"handle", "handle",
"is_giftcard", "is_giftcard",