javaweb中忘记密码该如何实现

我是个初学者,最近遇到了一个需求。
如忘记密码这个操作,我想了四种方案
方案一:通过注册的邮重置密码,需要注册的时候进行邮箱激活
方案二:通过手机号验证重置密码,需要注册的时候用手机号获取验证码
方案三:在注册时设置密保与答案存储在数据库中,通过回答问题重置密码
方案四:采用第三方登录,可免去注册和登录和忘记密码的实现
特别要求了不能导入其他jar包,除了第三种方案,其他方案有实现的可能吗

特别要求了不能导入其他的jar?理论上来说是可以实现的。不管是发邮件,还算发短信。本质上都是socket通信。

如果确实不能用第三方的依赖库。那你可以用方案二,通过手机验证码。一般发送验证码都是用http请求,调用服务商的接口完成验证码的发送。而Java本身自带有Http客户端的api。不需要额外的依赖。