我有一个webapp,用户可以登录并查看包含一些数据的仪表板。我正在使用APIary用于模拟数据,在我的Postgres数据库中,我的每个用户都有一个ID。这些ID也在APIary JSON文件中使用,并带有相关信息。
我正在使用REST :: Client和JSON进行连接,例如用户仪表板的url是:“/ user / dashboard / 12345”(在Apiary中) 在数据库中有一个ID为“12345”的用户。
如何在用户登录时这样做,他们的ID用于提取与他们相关的数据? (/用户/仪表板/ {ID})?任何文件或建议将不胜感激!
答案 0 :(得分:1)
Dancer2::Plugin::Auth::Extensible的文档显示了您需要做的事情的一部分。简而言之,请在会话中保存用户ID。我在文档中使用了部分代码并添加了会话。
post '/login' => sub {
my ($success, $realm) = authenticate_user(
params->{username}, params->{password}
);
if ($success) {
# we are saving your user ID to the session here
session logged_in_user => params->{username};
session logged_in_user_realm => $realm;
} else {
# authentication failed
}
};
get '/dashboard' => sub {
my $client = REST::Client->new();
# ... and now we use the user ID from the session to get the
# from the webservice
$client->GET( $apiary . '/user/dashboard/' . session('logged_in_user') );
my $data = $client->responseContent();
# do stuff with $data
};
答案 1 :(得分:0)
对于那些想知道我最终做什么的人:
Dancer2::Plugin::Auth::Extensible已
$user = logged_in_user();
当我打印它时,它向我展示了用户在数据库中拥有的所有值的哈希值,包括我拥有的附加ID。所以我用
访问了idmy $user_id = $user->{user_id};
并将$user_id
附加到网址的末尾!