在Stripe中更新客户的订阅取消之前,我要求他们输入密码进行确认。密码在存储时被散列为sha1(显然我从未看到它),因此发送的密码被哈希,然后进行比较。这是我正在使用的基本代码,它由jQuery AJAX事件提交:
$password = sha1( $_POST['password'] );
// get $stored_password from the DB using PDO.
if ( $stored_password != $password )
{
die( 'Password is incorrect.' );
}
从数据库条目中提取的所有其他内容与用户匹配(唯一ID,名称,电子邮件和& c。)。唯一不起作用的是密码,即使两个散列字符串相同。
编辑:我可以回复提交的密码和存储的密码哈希到页面,它们是相同的。我在第一次设置密码和运行此检查之前剥离标签并修剪所有用户输入。我做错了什么?