首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建新用户的IHP脚本

创建新用户的IHP脚本
EN

Stack Overflow用户
提问于 2021-12-20 16:07:50
回答 2查看 52关注 0票数 2

我正在为一个新的应用程序尝试IHP,在这个应用程序中,我们锁定身份验证后的所有内容,并且只允许现有用户注册其他新用户…什么是创建用户种子的最佳方法,或者至少是在应用程序之外创建一个用户?脚本能接受用户的输入吗?它看起来不需要等待用户的输入(并且需要从stdin重定向,这并不是世界上最糟糕的事情),并且不带参数,所以我想知道是否有其他的选择?

EN

回答 2

Stack Overflow用户

发布于 2021-12-20 16:09:57

根据设计,IHP脚本不允许用户输入。

有人建议直接在数据库中插入一个用户的种子。

我们可以从命令行使用hash-password生成哈希并插入到数据库中。

我能够使用IHP成功地执行INSERT语句。

另一个选项是类似于echo "INSERT INTO users (..) VALUES (..)" | psql "$DATABASE_URL"的直接选项。

票数 2
EN

Stack Overflow用户

发布于 2021-12-28 18:29:48

如果要使用IHP脚本创建用户帐户,可以使用该脚本:

代码语言:javascript
复制
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将更好地创建用户。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70424683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档