我正在使用revel来构建我的webapplication并尝试编写身份验证模块。 我完成了注册部分,现在正在编写部分签名。 我在The definitive guide to form-based website authentication上阅读了有关安全部分的内容,并将使用此建议。
我真正不知道的是,签到的方式如何。我想这个过程是这样的:
第三点是我住的地方。但是我知道如果可行而且不确定,如果是正确的方法。
因此,当登录信息与数据库匹配时,我会在会话对象(hash数据类型)中设置键值对signed_in:true。每当用户向web应用程序发出请求时,需要进行身份验证,如果signed_in为true,我会查看会话对象。
这就是我的方式,但正如我上面提到的,我不知道这是否正确。
答案 0 :(得分:0)
是的,就像提到的@twotwotwo一样,给它提供用户ID和角色。
所以服务器端呈现流程:步骤1
在受保护资源(或页面)上:步骤2
现在,如果您需要,您还可以使用应用程序范围的rsa密钥,并且在加密cookie值之前,使用rsa私钥对该字符串进行签名(在步骤1中)。在步骤2中使用AES密钥解码,检查签名是否有效,然后将内容与db存储内容进行比较。
在任何更改中,您必须更新cookie值(struct / map)和数据库中的信息。