首页 > 解决方案 > 通过 web 服务登录 prestashop 1.7

问题描述

Prestashop 菜鸟在这里。我正在使用 prestashop 1.7 创建一个离子应用程序。


TL;博士:

我不能使用与 Prestashop 1.7 相同的加密来将应用程序用户密码与数据库中的加密密码进行比较


细节:

所以 prestashop 没有提供正确的登录方式(文档中甚至没有提到登录词)。我正在考虑使用输入的电子邮件(api/customers/?filter[email]=INPUT_EMAIL)获取客户,然后加密使用来自 api 的“passwd”属性加密的 INPUT_PASSWORD。问题是我无法应用与 Prestashop 相同的加密(即使密码正确,它们也永远不会匹配)

PS:

我试过md5(COOKIE_KEY+INPUT_PASSWORD)了,但仍然不是正确的

标签: web-servicesauthenticationionic4prestashop-1.7password-encryption

解决方案


有点晚了,但我相信其他人会面对这个。我所做的与问题中提到的相同程序:获取客户信息并匹配密码。Prestashop 1.6 显然使用 md5 但 PS 1.7 使用 bcrypt,所以你必须:

获取 bcryptjs 包(我使用的是 angular,nodejs 有 bcrypt 包)。

更改替换$2y$$2a$(PHP 的 bcrypt 使用的第一个,Javascript 的第二个)。

将哈希值与键入的密码进行比较bcrypt.compare(INPUT_PASSWORD, pwd)

如果它们匹配,则从那里开始调整您的应用程序以使其按需要运行。


推荐阅读