Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度及;Typescript-从管理员登录停用其他用户时出现问题_Javascript_Jquery_Angular_Typescript_Login - Fatal编程技术网

Javascript 角度及;Typescript-从管理员登录停用其他用户时出现问题

Javascript 角度及;Typescript-从管理员登录停用其他用户时出现问题,javascript,jquery,angular,typescript,login,Javascript,Jquery,Angular,Typescript,Login,在我的web应用程序中,当我以“管理员”身份登录时,我将能够查看、激活、删除等我的应用程序的用户配置文件。 当管理员激活用户配置文件时,用户将能够访问应用程序。 当管理员停用用户配置文件时,用户将无法访问应用程序。 问题出现在以下场景中。我以某个激活用户XYZ的身份登录到一个浏览器(比如IE)。我以管理员身份登录到另一个浏览器(比如Chrome)。现在,我正在停用激活的用户 我的预期行为是,在另一个浏览器中打开的XYZ应该注销,并重定向到登录页面以重新登录。但现在发生的是,即使在停用XYZ之后,

在我的web应用程序中,当我以“管理员”身份登录时,我将能够查看、激活、删除等我的应用程序的用户配置文件。 当管理员激活用户配置文件时,用户将能够访问应用程序。 当管理员停用用户配置文件时,用户将无法访问应用程序。 问题出现在以下场景中。我以某个激活用户XYZ的身份登录到一个浏览器(比如IE)。我以管理员身份登录到另一个浏览器(比如Chrome)。现在,我正在停用激活的用户

我的预期行为是,在另一个浏览器中打开的XYZ应该注销,并重定向到登录页面以重新登录。但现在发生的是,即使在停用XYZ之后,该会话也仅处于登录状态

我尝试了n种方法来解决这个问题,但没有任何收获。 由于我的代码太长,下面是处理此问题的代码片段

HTML:

我们非常欢迎能够解决我的问题的建议和代码片段。
jQuery
Javascript
中的解决方法也很受欢迎

当您选择JWT身份验证类型时,没有会话


在他/她的令牌过期之前,经过身份验证的用户将保持身份验证和授权。

哪种身份验证类型,哪种jhipster版本?客户端是否定期检查用户是否已激活或其令牌是否有效?如果你停用一个帐户,他们的电脑怎么知道?让电脑知道的一些好方法是信号器或长轮询。您还可以在他们每次通过身份验证防护进入页面并将其踢到重定向时检查他们的令牌/帐户。@trystanhuman,如果用户被停用,他们将无法登录all@GaëlMarziou jhipster v4.14.1正确,但您如何让他们的客户注销?我通常在操作或重定向上验证他们的身份/令牌。如果你想让他们立即离开页面,你需要一些更严厉的东西,比如signer来通知他们的客户端检查权限并注销。刚刚看到你在用杰普斯特。从来没用过,抱歉。抱歉,延迟回复。当然,我选择的身份验证是JWT!一旦用户被停用,我应该如何使会话失效?你不能,因为JWT中没有会话。您可以将会话机制服务器端添加为自定义代码,或者切换到其他身份验证类型。如果是这种情况,更改身份验证类型是否会产生所需的结果?更简单的方法是使用基于会话的身份验证。编辑您的
.yo rc.json
文件,使用
jhipster重新生成--使用实体
或更好的想法,首先在新项目中进行测试,因为我已经很久没有使用这种身份验证类型了。
<tbody *ngIf = "users">
<tr *ngFor = "let user of users; trackBy: trackIdentity">
<td>
    <button class="btn btn-danger btn-sm" (click)="setActive(user, true)" *ngIf="!user.activated">Deactivated</button>
    <button class="btn btn-success btn-sm" (click)="setActive(user, false)" *ngIf="user.activated" [disabled]="currentAccount.login === user.login">Activated</button>
</td>
</tr>
</tbody>
setActive(user, isActivated) {
user.activated = isActivated;
this.userService.update(user).subscribe(
(response) => {
if(response.status === 200) {
    this.error = null;
    this.success = 'OK';
    this.loadAll();
    }
else {
    this.success = null;
    this.error = 'ERROR';
    }
}}