Web2.0用户注册,激活,密码找回模块
2006-01-03 21:02
549 查看
在web2.0中,都采用Email作为登陆ID,账号模块主要由以下功能组成
登陆验证(在激活前提下,才可登陆)
用户注册
账号激活
重发激活邮件
密码找回
为实验这模块,我们可以提出这样的解决方案:
A.数据库设计
--用户注册
CREATE PROCEDURE Tao_UserReg
(
@Email NVarChar(100),
@Password NVarChar(50),
@NickName NVarChar(50),
@GUID NVarChar(50)=null OutPut --返回激活码,发往用户邮箱
)
AS
if not exists(select * from Tao_Users where Email=@Email or NickName=@NickName)
begin
Insert Into Tao_Users(Email,NickName,Password,RegTime)
Values(@Email, @NickName, @Password,GetDate())
Select @GUID = NewID();--由SQL生存一个GUID
--插入验证信息表
Insert Into Tao_Valid (GUID, UserID,Type,AddTime)
Values (@GUID, @@Identity,1,GetDate())
end
GO
数据库返回一个GUID后,我们再往用户邮箱中发送验证Email,用户收到激活邮件后,进行账号激活
--激活账号,返回用户信息(自动登陆系统)
CREATE PROCEDURE Tao_UserActive
(
@GUID NVarChar(50)
)
AS
declare @UserID int --存放用户ID
Select @UserID=UserID From Tao_Valid Where GUID=@GUID And Type=1
--删除验证表中记录
Delete From Tao_Valid Where GUID=@GUID And Type=1
--更新用户状态
Update Tao_Users Set State=1 Where UserID= @UserID
--返回用户信息,自动登陆
Select * From Tao_Users Where UserID= @UserID And State=1
GO
--重发激活码
CREATE PROCEDURE Tao_UserAgainActive
(
@Email NVarChar(100),
@GUID NVarChar(50) Output
)
AS
declare @UserID int
--从用户表中根据Email,查出UserID
Select @UserID=UserID
From Tao_Users
Where State=0 And Email=@Email
--如果找到有此未激活用户
if NOT(@UserID=NULL)
Begin
--删除原有激活信息
Delete From Tao_Valid Where UserID=@UserID
Select @GUID=NewID() --重新生存ID
Insert Into Tao_Valid
(GUID,UserID,Type,AddTime)
Values (@GUID,@UserID,1,GetDate())
End找回密码部分(返回GUID后,发往用户邮箱)
--发送找回密码验证码
Create Procedure Tao_UserCPwdCode
(
@Email NVarChar(100),
@GUID NVarChar(50)OutPut
)
AS
Declare @UserID int
--从用户表中查出UserID
Select @UserID=UserID
From Tao_Users
Where State=1 And Email=@Email
--如果此用户
If Not(@UserID=Null)
Begin
--删除原有更改密码验证码
Delete From Tao_Valid Where UserID=@UserID And Type=2
Select @GUID=NewID()
--插入新验证码
Insert Into Tao_Valid
(GUID,UserID,Type,AddTime)
Values(@GUID,@UserID,2,GetDate())
End
密码重设部分,根据用户邮箱中的更改密码链接GUID,获取用户昵称,进入更改密码页面,
--密码找回
CREATE PROCEDURE Tao_UserCPwd
(
@GUID NVarChar(50)=null,
@NewPwd NVarChar(50)=null
)
AS
if(@NewPwd=null)
--返回用户昵称,UI中进入重设密码页面
begin
Select U.NickName From Tao_Users AS U,Tao_Valid AS V
Where V.UserID=U.UserID AND V.GUID=@GUID
end
--更改用户密码
Else Begin
declare @UserID int
Select @UserID=UserID From Tao_Valid Where GUID=@GUID And Type=2
Delete From Tao_Valid WHere GUID=@GUID And Type=1
Update Tao_Users Set State=1,Password=@NewPwd Where UserID= @UserID
Select * From Tao_Users Where UserID= @UserID
End
GO
这样就完成了整个账户管理部分模块.
登陆验证(在激活前提下,才可登陆)
用户注册
账号激活
重发激活邮件
密码找回
为实验这模块,我们可以提出这样的解决方案:
A.数据库设计
--用户注册
CREATE PROCEDURE Tao_UserReg
(
@Email NVarChar(100),
@Password NVarChar(50),
@NickName NVarChar(50),
@GUID NVarChar(50)=null OutPut --返回激活码,发往用户邮箱
)
AS
if not exists(select * from Tao_Users where Email=@Email or NickName=@NickName)
begin
Insert Into Tao_Users(Email,NickName,Password,RegTime)
Values(@Email, @NickName, @Password,GetDate())
Select @GUID = NewID();--由SQL生存一个GUID
--插入验证信息表
Insert Into Tao_Valid (GUID, UserID,Type,AddTime)
Values (@GUID, @@Identity,1,GetDate())
end
GO
数据库返回一个GUID后,我们再往用户邮箱中发送验证Email,用户收到激活邮件后,进行账号激活
--激活账号,返回用户信息(自动登陆系统)
CREATE PROCEDURE Tao_UserActive
(
@GUID NVarChar(50)
)
AS
declare @UserID int --存放用户ID
Select @UserID=UserID From Tao_Valid Where GUID=@GUID And Type=1
--删除验证表中记录
Delete From Tao_Valid Where GUID=@GUID And Type=1
--更新用户状态
Update Tao_Users Set State=1 Where UserID= @UserID
--返回用户信息,自动登陆
Select * From Tao_Users Where UserID= @UserID And State=1
GO
--重发激活码
CREATE PROCEDURE Tao_UserAgainActive
(
@Email NVarChar(100),
@GUID NVarChar(50) Output
)
AS
declare @UserID int
--从用户表中根据Email,查出UserID
Select @UserID=UserID
From Tao_Users
Where State=0 And Email=@Email
--如果找到有此未激活用户
if NOT(@UserID=NULL)
Begin
--删除原有激活信息
Delete From Tao_Valid Where UserID=@UserID
Select @GUID=NewID() --重新生存ID
Insert Into Tao_Valid
(GUID,UserID,Type,AddTime)
Values (@GUID,@UserID,1,GetDate())
End找回密码部分(返回GUID后,发往用户邮箱)
--发送找回密码验证码
Create Procedure Tao_UserCPwdCode
(
@Email NVarChar(100),
@GUID NVarChar(50)OutPut
)
AS
Declare @UserID int
--从用户表中查出UserID
Select @UserID=UserID
From Tao_Users
Where State=1 And Email=@Email
--如果此用户
If Not(@UserID=Null)
Begin
--删除原有更改密码验证码
Delete From Tao_Valid Where UserID=@UserID And Type=2
Select @GUID=NewID()
--插入新验证码
Insert Into Tao_Valid
(GUID,UserID,Type,AddTime)
Values(@GUID,@UserID,2,GetDate())
End
密码重设部分,根据用户邮箱中的更改密码链接GUID,获取用户昵称,进入更改密码页面,
--密码找回
CREATE PROCEDURE Tao_UserCPwd
(
@GUID NVarChar(50)=null,
@NewPwd NVarChar(50)=null
)
AS
if(@NewPwd=null)
--返回用户昵称,UI中进入重设密码页面
begin
Select U.NickName From Tao_Users AS U,Tao_Valid AS V
Where V.UserID=U.UserID AND V.GUID=@GUID
end
--更改用户密码
Else Begin
declare @UserID int
Select @UserID=UserID From Tao_Valid Where GUID=@GUID And Type=2
Delete From Tao_Valid WHere GUID=@GUID And Type=1
Update Tao_Users Set State=1,Password=@NewPwd Where UserID= @UserID
Select * From Tao_Users Where UserID= @UserID
End
GO
这样就完成了整个账户管理部分模块.
相关文章推荐
- Web2.0用户注册,激活,密码找回模块
- Django网站建设-用户注册、登陆、邮箱激活、密码找回
- web day24 小项目练习图书商城, 用户,模块(注册,激活,登陆,退出),分类/图书模块
- 发送邮件 激活用户或找回密码
- 用户激活和找回密码发送邮件
- (十)用户管理模块(登录,注册,修改,重置密码MD5加密,时间戳+sql server 2014)
- ThinkPHP 3.2 用户注册邮箱验证帐号找回密码
- 用户注册的邮箱激活模块的设计与实现
- spring boot 整合 mail 发送邮件 【用户注册以及找回密码】
- 用户注册的邮箱激活模块的设计与实现
- 用户注册的邮箱激活模块的设计与实现【申明:来源于网络】
- 用户注册的邮箱激活模块的设计与实现
- javamail做用户密码找回功能出现的问题解决结果。
- 使用Struts 2.0 框架实现用户注册登录模块(数据库校验)
- 如何找回Oracle中system,sys用户的密码
- 邮箱激活注册用户
- 用户注册模块关键部分
- ectouch 注册会员出错 ,密码找回问题不能为空。
- Linux下为root用户找回密码
- CodeIgniter 用户登录注册模块