关于NopCommerce3.6版用户登录详解
一、登录方式
Nop登录方式有两种(且只能选择一种方式登录):一种是用用户名登录,另一种是用户注册邮箱登录,这个在后台可配置:
第一种:用户名登录
后台配置路径在商城设置à设置管理à客户设置:使用用户名登录
第二种:如果使用用户名复选框未选中的话就是使用邮箱登陆了。
二、加密方式
Nop 的用户密码加密方式有两种:
一种是Encrypt(加密),具体配置可在商城设置à设置管理à客户设置,
另一种是Hash(哈希加密),nop默认是使用哈希加密,
另外就是明文,不启用任何加密方式(如用户外部授权登录后的密码就是随机生成的明文密码,未采用任何加密)
三、用户登录
1.Nop在打开网站的时候会自动插入一个匿名用户,保存在Cookie中,保存时间为1年,并赋予guest权限用于浏览前端页面,
代码在Nop.Web.Framework的WebWorkContext.cs文件
2.用户登录验证:nop采用的是谷歌服务的验证码,这个不考虑(天朝用不到,不过没事不要开启这个验证,开启的话不但显示不了验证码,还会导致用户无法登录,除非去数据库删除验证码的有关设置),nop采用的是第三方验证工具FluentValidation作为前端的判空等其它验证,简单验证用户名和密码以及采用哪种登录方式后进入服务验证
1:判定用户是否已存在,是否已删除,是否为启用及是否未注册
2:用户密码加密方式,哈希或者Encrypt加密
CustomerLoginResults枚举类在:Libraries\Nop.Core\Domain\Customers\CustomerLoginResults.cs
Nop用了一个枚举类CustomerLoginResults作为输出用户登录的结果,这个本人挺喜欢这个方式,符合多种用户登录的可能结果判断,还可以扩展结果类型。
如果用户验证通过,则把当前用户保存在Cookie中
保存用户在cookie
该文件目录在:Libraries\Nop.Services\Authentication\FormsAuthenticationService.cs
并赋值_cachedCustomer,配合WebWorkContext上下文在整个项目提供一个CurrentCustomer使用。
这就是nop对用户登录的大概处理方式,个人拙见,还望各位看官多多包涵。其它有什么细节的事可以在群里发问或者私聊我,我会的就帮忙。(群号: 75272942)
个人联系QQ:875755898