我遵循了luminusweb.net网站上的大部分教程,使用+h2新应用程序设置了一个数据库系统。我目前所拥有的内容反映了guestbook的设置,如教程所示。我现在想知道如何才能访问迁移up表中的特定条目。更具体地说,我正在尝试根据表中的条目限制对网页(登录系统)的访问。
发布于 2015-11-25 14:57:55
迁移文件的目的是在数据库中创建表。要访问这些表,您必须在位于以下位置的文件中编写查询: your_project > resources > sql > queries.sql
在这里你应该写一些查询,这里有一些关于Luminus website的例子。当您看到带有半列的参数时,这意味着当您在程序中调用这些查询时,您必须传递一个带有这些参数的映射。例如:如果您有这样的查询:
-- name: accounts_for_user
-- retrieve all accounts a user has access to and the associated rights
SELECT account_name, admin
FROM accounts_users
WHERE email = :email;呼叫声:
(db/accounts_for_user {:email "laurent@test.com"})将返回如下的延迟序列:
[{"account_name":"account1","admin":false},
{"account_name":"account2","admin":true},
{"account_name":"account2","admin":true}]然后,如果您想根据数据库中的内容限制对特定页面的访问,有几个选择。Buddy auth library提供了一些选项,最容易使用的是会话选项。首先,当用户输入正确的密码时,在任何请求中都要将他们的标识符注入:session :identity。例如
(-> (redirect "/accounts-list")
(assoc :session {:identity "user@test.com"}))identity参数将存在于每个请求中,直到会话终止(默认情况下为30分钟)或被覆盖为止。在页面中,您可以对请求测试buddy.auth/authenticated?,如果返回false,则重定向到错误页面或任何您喜欢的页面。我目前正在为使用Luminus的when应用程序编写教程,我会在这个答案可用时更新它。
https://stackoverflow.com/questions/30786241
复制相似问题