我正在为一个新的应用程序尝试IHP,在这个应用程序中,我们锁定身份验证后的所有内容,并且只允许现有用户注册其他新用户…什么是创建用户种子的最佳方法,或者至少是在应用程序之外创建一个用户?脚本能接受用户的输入吗?它看起来不需要等待用户的输入(并且需要从stdin重定向,这并不是世界上最糟糕的事情),并且不带参数,所以我想知道是否有其他的选择?
发布于 2021-12-20 16:09:57
根据设计,IHP脚本不允许用户输入。
有人建议直接在数据库中插入一个用户的种子。
我们可以从命令行使用hash-password生成哈希并插入到数据库中。
我能够使用IHP成功地执行INSERT语句。
另一个选项是类似于echo "INSERT INTO users (..) VALUES (..)" | psql "$DATABASE_URL"的直接选项。
发布于 2021-12-28 18:29:48
如果要使用IHP脚本创建用户帐户,可以使用该脚本:
run :: Script
run = do
let username = "admin"
password = "admin"
hashed <- hashPassword password
existingUser <- query @User
|> findMaybeBy #email username
user <- case existingUser of
Just user -> do
putStrLn $ username ++ " already existing, skipping..."
return user
_ -> do
putStrLn $ "Inserting " ++ username ++ "..."
hashed <- hashPassword password
user <- newRecord @User
|> set #email username
|> set #passwordHash hashed
|> createRecord
putStrLn $ "Inserted " ++ username
return user
return ()您可以轻松地更改上面的默认值以接受来自用户的输入,但是是的,正如上面提到的那样,IHP脚本不是为处理用户输入而设计的,使用IHP IDE将更好地创建用户。
https://stackoverflow.com/questions/70424683
复制相似问题