Angular应用程序-仅限经过身份验证的用户访问
我有一个Angular4应用程序,它是针对Azure Active Directory(AAD)的身份验证。我没有任何登录页面,因为它是由AAD管理的。我需要的是:如果对该站点的任何请求未经过身份验证,请将其重定向到AAD登录页面。我知道如何保护路由,但如何保护整个Angular应用程序?要限制Angular 4应用程序中使用Azure AD的访问权限,我们可以使用benbaran提供的 您可以参考代码示例来集成此库 请注意,遵循此代码示例时存在一个小问题。在Angular应用程序-仅限经过身份验证的用户访问,angular,azure,authentication,azure-active-directory,Angular,Azure,Authentication,Azure Active Directory,我有一个Angular4应用程序,它是针对Azure Active Directory(AAD)的身份验证。我没有任何登录页面,因为它是由AAD管理的。我需要的是:如果对该站点的任何请求未经过身份验证,请将其重定向到AAD登录页面。我知道如何保护路由,但如何保护整个Angular应用程序?要限制Angular 4应用程序中使用Azure AD的访问权限,我们可以使用benbaran提供的 您可以参考代码示例来集成此库 请注意,遵循此代码示例时存在一个小问题。在app.component.ts中,
app.component.ts
中,要使用adal.Config
,我们需要添加以下行来导入它:
import { adal } from 'adal-angular';
我最后检查了用户是否在AppModule中经过身份验证:
export class AppModule {
constructor(private readonly _authService: AuthService) {
this.useAuthentication();
}
private useAuthentication() {
if (!this._authService.isAuthenticated) {
this._authService.signIn();
}
}
}
一种解决方案是,如果用户登录,您可以在本地存储中保存一些值
For Ex:Token
如果Token
不存在,请将其重定向到AAD登录页谢谢,但是我应该将此检查放在哪里?我实际上使用的是“ng2 adal/core”,所以我可以调用adalService.userInfo.isAuthenticated
。这应该转到app.module吗?保护整个应用程序只能在服务器端完成,这取决于使用的技术。重要的一点是,路由器防护不提供实际的安全性,从某种意义上说,它们是可以重写的前端代码。@AngularUniversity如果您使用npm start
托管应用程序,您将如何配置主机以仅允许经过身份验证的用户并再次进行身份验证?您可以在用户首次成功登录时将该值设置为本地存储,然后在您可以签入后再设置为本地存储app.component.ts
ngonnit()
函数首先触发存在有效用户令牌的位置并继续执行