首页 > 解决方案 > Angular 在浏览器地址栏中公开登录名和密码

问题描述

我有一个 Angular 9 应用程序。有时(非常罕见)当我的身份验证数据直接暴露在浏览器地址栏中时,我会遇到问题,例如,而不是

http://localhost:8080/#/application/48

出于某种原因,它看起来像

http://localhost:8080/?username=foo&password=bar#/application/48

这不是很常见,但无论如何。我在我的应用程序中使用了一个ng-idle库。它使应用程序在一些空闲超时后返回登录页面。根据我的观察,在 ng-idle 工作完成后会出现问题。

问题是什么?有没有办法严格禁止曝光?

标签: angularauthenticationng-idle

解决方案


可能您有一个正在使用用户名和密码提交的登录表单,这是 的默认行为form,这是您可以停止提交表单并手动将表单提交到 API 的方法。

//HTML
<form (submit)="onSubmit($event)">
 <input type="text" name="username">
 <input type="password" name="password">
 <button>Submit</button>
</form>

//TS
onSubmit(evt) {
 evt.preventDefault();//Stops submitting form
 //Call API to login
}

推荐阅读