1 java authentication spring-mvc
我正在构建Web应用程序,我正在构建用户注册和登录的第一个阶段.
我在想
class User
{
private userid;
private firstname
.........
//getters and setters
}
class UserService {
public boolean authenticate(username, password) {}
public addUser()
public saveuser()
public ConfirmEmail()
public resetPassword()
......
}
Run Code Online (Sandbox Code Playgroud)
我几乎没有问题
首先,我要看一下您是否可以使用其他身份验证系统,如Google或Facebook,或Open ID(StackOverflow使用这些以及更多).
其次,我会考虑使用像Spring Security这样的安全框架.
最后,如果您想要/需要从头开始自己完成,这里有一些指示
我假设你正在使用数据库.这是一个示例模式(MySQL)
CREATE TABLE users (
id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT
mail VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
enc_password VARCHARCHAR(64) NOT NULL,
salt CHAR(8) NOT NULL,
is_mail_authenticated TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
UNIQUE KEY (mail)
) ENGINE = InnoDB;
CREATE TABLE roles (
id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT
name VARCHAR(32) NOT NULL,
UNIQUE KEY (name)
) ENGINE = InnoDB;
CREATE TABLE users_roles (
user_id NTEGER UNSIGNED NOT NULL,
role_id NTEGER UNSIGNED NOT NULL,
FOREIGN KEY (user_id) REFERENCES users (id),
FOREIGN KEY (roel_id) REFERENCES roles (id),
) ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)
那将是一个非常基本的用户模型.你需要一个生成盐的工具.我将使用Apache commons lang中的randomAlphanumeric.
在登录尝试失败次数过多后,您可能需要添加一些内容来锁定用户帐户.您可能希望跟踪他们登录的IP.这是留给读者的练习:)
我添加了is_mail_authenticated字段来跟踪用户是否已对其邮件进行了身份验证.这通常是通过单击某个电子邮件中的链接来完成的.
| 归档时间: |
|
| 查看次数: |
5777 次 |
| 最近记录: |