fix(auth): improve password form autocomplete

This commit is contained in:
Mplan committed 2026-07-28 23:27:59 +08:00
1 parent 1a7fd11eee
commit 8ae004b466
5 files changed
+69 -18

No files matched your search

+7 -2
View File
@@ -139,8 +139,13 @@ onUnmounted(() => {
<NFormItem label="邮箱"> <NFormItem label="邮箱">
<NInput <NInput
v-model:value="email" v-model:value="email"
required type="text"
autocomplete="email" :input-props="{
autocomplete: 'email',
inputmode: 'email',
name: 'email',
required: true,
}"
placeholder="your@email.com" placeholder="your@email.com"
/> />
</NFormItem> </NFormItem>
+12 -4
View File
@@ -79,8 +79,13 @@ async function handleLogin() {
<NFormItem label="邮箱"> <NFormItem label="邮箱">
<NInput <NInput
v-model:value="email" v-model:value="email"
required type="text"
autocomplete="email" :input-props="{
autocomplete: 'username',
inputmode: 'email',
name: 'username',
required: true,
}"
placeholder="your@email.com" placeholder="your@email.com"
/> />
</NFormItem> </NFormItem>
@@ -89,9 +94,12 @@ async function handleLogin() {
<NInput <NInput
v-model:value="password" v-model:value="password"
type="password" type="password"
required
show-password-on="click" show-password-on="click"
autocomplete="current-password" :input-props="{
autocomplete: 'current-password',
name: 'current-password',
required: true,
}"
placeholder="输入密码" placeholder="输入密码"
/> />
</NFormItem> </NFormItem>
+22 -8
View File
@@ -105,8 +105,11 @@ async function handleRegister() {
<NInput <NInput
v-model:value="username" v-model:value="username"
type="text" type="text"
required :input-props="{
autocomplete="username" autocomplete: 'username',
name: 'username',
required: true,
}"
placeholder="你的昵称" placeholder="你的昵称"
maxlength="20" maxlength="20"
/> />
@@ -115,8 +118,13 @@ async function handleRegister() {
<NFormItem label="邮箱"> <NFormItem label="邮箱">
<NInput <NInput
v-model:value="email" v-model:value="email"
required type="text"
autocomplete="email" :input-props="{
autocomplete: 'email',
inputmode: 'email',
name: 'email',
required: true,
}"
placeholder="your@email.com" placeholder="your@email.com"
/> />
</NFormItem> </NFormItem>
@@ -125,9 +133,12 @@ async function handleRegister() {
<NInput <NInput
v-model:value="password" v-model:value="password"
type="password" type="password"
required
show-password-on="click" show-password-on="click"
autocomplete="new-password" :input-props="{
autocomplete: 'new-password',
name: 'new-password',
required: true,
}"
placeholder="至少8位" placeholder="至少8位"
/> />
</NFormItem> </NFormItem>
@@ -136,9 +147,12 @@ async function handleRegister() {
<NInput <NInput
v-model:value="confirmPassword" v-model:value="confirmPassword"
type="password" type="password"
required
show-password-on="click" show-password-on="click"
autocomplete="new-password" :input-props="{
autocomplete: 'new-password',
name: 'confirm-new-password',
required: true,
}"
placeholder="再次输入密码" placeholder="再次输入密码"
/> />
</NFormItem> </NFormItem>
+18 -4
View File
@@ -142,13 +142,24 @@ onUnmounted(() => {
</div> </div>
<NForm @submit.prevent="handleResetPassword"> <NForm @submit.prevent="handleResetPassword">
<input
type="text"
name="username"
autocomplete="username"
class="sr-only"
tabindex="-1"
aria-label="账户用户名"
/>
<NFormItem label="新密码"> <NFormItem label="新密码">
<NInput <NInput
v-model:value="password" v-model:value="password"
type="password" type="password"
required
show-password-on="click" show-password-on="click"
autocomplete="new-password" :input-props="{
autocomplete: 'new-password',
name: 'new-password',
required: true,
}"
placeholder="至少 8 位" placeholder="至少 8 位"
/> />
</NFormItem> </NFormItem>
@@ -157,9 +168,12 @@ onUnmounted(() => {
<NInput <NInput
v-model:value="confirmPassword" v-model:value="confirmPassword"
type="password" type="password"
required
show-password-on="click" show-password-on="click"
autocomplete="new-password" :input-props="{
autocomplete: 'new-password',
name: 'confirm-new-password',
required: true,
}"
placeholder="再次输入新密码" placeholder="再次输入新密码"
/> />
</NFormItem> </NFormItem>
+10
View File
@@ -149,6 +149,16 @@ async function savePassword() {
</p> </p>
</div> </div>
<NForm class="grid gap-3" @submit.prevent="savePassword"> <NForm class="grid gap-3" @submit.prevent="savePassword">
<input
:value="authStore.user?.email || ''"
type="text"
name="username"
autocomplete="username"
class="sr-only"
tabindex="-1"
aria-label="账户邮箱"
readonly
/>
<NInput <NInput
v-model:value="newPassword" v-model:value="newPassword"
type="password" type="password"