gpt4 book ai didi

erlang - n2o Erlang 框架电子邮件身份验证

转载 作者:行者123 更新时间:2023-12-02 03:46:41 26 4
gpt4 key购买 nike

我是 Erlang 和 N2O 的新手,但在 python Web 开发方面有一些经验。我想在我的应用程序中通过电子邮件地址(电子邮件 - 密码)创建身份验证,而不是使用 AVZ。我已经使用此代码创建了注册页面(其他代码为 n2o_sample)。但我没有将用户置于 kvs 上,而是 {error, no_container}

-module(signup_page).
-compile(export_all).
-include_lib("n2o/include/wf.hrl").
-include_lib("n2o_sample/include/users.hrl").

title() -> [ <<"Sign Up Page">> ].
main() -> #dtl{file = "login", app = n2o_sample,
bindings = [{title,title()},{body,body()}]}.

body() ->
[ #span{id=display}, #br{},
#span{body="Email: "}, #textbox{id=user}, #br{},
#span{body="Password: "}, #password{id=pass}, #br{},
#span{body="Confirm Password"}, #password{id=confirm}, #br{},
#button{id=signup, body="Sign Up",
postback=signup,source=[user,pass,confirm]}].

event(signup) ->
User = wf:q(user), Password = wf:q(pass), Confirm = wf:q(confirm),
U = kvs:get(user, User, undefined),
case U of
{ok, undefined} ->
case Password of
undefined -> wf:update(display, <<"No pass">>);
Confirm -> Status = kvs:put(#user{id=User}),
% -> {error, no_container}
io:format("~w~n", [Status]);
B -> io:format("~w~n", [B]) end;
A -> io:format("~w~n", [A]),
wf:update(display, <<"Already registered!">>) end;

event(_) -> [].

最佳答案

你做的一切都是正确的。

问题本质上是 KVS 配置。为了使 KVS 正常工作,您应该执行以下几个步骤:

1.将kvs放入rebar.config

    {kvs, ".*", {git, "git://github.com/synrc/kvs", {tag,"1.5.0"}}},

使用卡住标签版本,例如“1.5.0”是最新的稳定版本。

2.在sys.config中配置KVS应用

    {n2o, [{port,8000},{transition_port, 8000}]},
{kvs, [{dba,store_mnesia},
{schema, [kvs_user, kvs_acl, kvs_feed, kvs_subscription ]} ]},

我放入了示例 N2O 配置来查看应该放置在哪里。

3.首次启动“make console”后,您应该在 Erlang shell 中初始化数据库:

1> kvs:join().

这将实例化 MNESIA 表。

4.之后,请在 Erlang shell 中检查您的问题:

2> rr(kvs_user).

首先从 kvs_user 模块加载所有记录。然后执行检查:

3> kvs:put(#user{id="maxim@synrc.com"}).

关于erlang - n2o Erlang 框架电子邮件身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com