登录表单不提供 Chrome 上的密码保存功能
Posted
技术标签:
【中文标题】登录表单不提供 Chrome 上的密码保存功能【英文标题】:Login form does not offer password saving on Chrome 【发布时间】:2015-09-29 01:38:22 【问题描述】:我正在使用 React 创建一个登录表单。它使用window.fetch
(polyfill) 处理请求,使用react-router
在登录后进入正确的页面。
问题在于 Chrome 不提供保存用户名+密码的可能性,而 Firefox、Safari 和 IE 提供(可能 Opera 也是)。
我目前仅使用 http 对 localhost 进行测试,但我认为这不是问题。
代码如下:
doSignIn: function(evt)
evt.preventDefault();
this.context.SignInAction.signIn(evt.target.action,
email: this.credentials.email,
password: this.credentials.password
)
.then(() =>
this.transitionTo('/');
)
.catch((err) =>
this.setState(incorrectSignIn: true);
React.findDOMNode(that.refs.email).focus();
);
,
(渲染部分):
<form autoComplete='on' method='POST' action='/site/sign-in' onSubmit=this.doSignIn>
<ul className='signIn'>
<li className=classesNotification>Invalid e-mail or password</li>
<li>
<input
ref='email'
type='email'
defaultValue=this.credentials.email
placeholder='your e-mail address'
required
autoFocus='true' />
</li>
<li>
<input
type='password'
defaultValue=this.credentials.password
placeholder='password'
required /></li>
<li><button type='submit'>Sign in</button></li>
</ul>
</form>
我查找了类似的案例,但大多数都声称它是由autocomplete=off
引起的。我的情况并非如此。
我也检查了这个问题:Using reactjs and javascript - Chrome does not offer to remember passwords,但没有帮助。
这是 Chrome 中的一个错误,还是我必须以某种方式将我的请求作为普通表单帖子“传播”,以让 Chrome 了解我们实际上是在向服务器发送用户名+密码?
请注意,我已在三台不同的计算机上尝试过此操作,一台本地计算机,一台来自同一网络,另一台来自虚拟机,并且还检查了我自己的 Chrome 自动完成首选项。从这个角度来看,一切都很好。
【问题讨论】:
【参考方案1】:当 Chrome 更新 (44.x) 后,这个问题显然得到了解决。
【讨论】:
以上是关于登录表单不提供 Chrome 上的密码保存功能的主要内容,如果未能解决你的问题,请参考以下文章