因此,我在 ChicagoBoss 度过了一个晚上。我现在正在尝试将 ChicagoBoss 与 MongoDB 连接起来,用它构建一个应用程序(并学习我在此过程中一直关注的两项新技术)。不幸的是,我似乎遇到了障碍。具体来说,创建用户后,密码似乎与设置的不同。请注意,除配置代码外,所有代码均直接来自 Chicago Boss 教程。
boss.config - 重新数据库:
{db_host, "localhost"},
{db_port, 27017},
{db_adapter, mongodb},
登录功能
login('POST', []) ->
Name = Req:post_param("name"),
case boss_db:find(user, [{name, Name}]) of
[User] ->
case User:check_password(Req:post_param("password")) of
true ->
{redirect, proplists:get_value("redirect",
Req:post_params(), "/"), User:login_cookies()};
false ->
{ok, [{error, "Bad name/password combination"}]}
end;
[] ->
{ok, [{error, "No User named " ++ Name}]}
end.
然后 - 从管理界面创建用户并使用
hash_for(Name, Password) ->
Salt = mochihex:to_hex(erlang:md5(Name)),
hash_password(Password, Salt).
要生成哈希,会发生以下两件事:
1) 用户被创建但不是作为用户 1 被标识,而是作为 usr-51970a2a3e01c027d4000001。
这是为什么?我认为 ChicagoBoss 遵循了自动递增数字索引的 Rails 约定?
2) 即使使用了传递给 hash_for 的密码,用户也永远无法登录。
3)芝加哥老板服务器重新启动后,新创建的数据库对象被保留 - 所以 mongo 至少正确保存了一些东西。
任何人都可以解释这里发生了什么吗?MongoDB 是如何试图拯救用户的?用 MongoDB 连接 Chicago Boss 的正确方法是什么,boss_db 本身不处理 MongoDB 吗?
所有这些都试图用作起点的教程是:
https://github.com/evanmiller/ChicagoBoss/wiki/An-Evening-With-Chicago-Boss