【问题标题】:Angular 4 with authentication from backend具有后端身份验证的 Angular 4
【发布时间】:2017-11-01 13:43:18
【问题描述】:

其中一位后端开发人员开发了 drupal 网站,一旦任何用户从 drupal 端登录,他将被重定向到 Angular4 仪表板,在 Angular4 部分,我需要验证用户身份才能访问仪表板,前提是用户是经过身份验证的用户。在这里,我没有任何登录部分来允许用户登录,但我需要将用户作为登录用户进行操作。那么在Angular中如何实现呢?谁能帮我解决这个问题?

【问题讨论】:

  • 两个网站是否托管在同一个 URL 上?
  • 嗨!请参阅How to Ask 以及如何创建minimal reproducible example。尝试一些事情,编写一些代码,然后返回一个特定问题
  • @Parijat Purohit:是的,都在同一个网址上

标签: angular drupal-8


【解决方案1】:

一般来说,如果整个网站共享同一个 URL,您可以使用 cookie 变量来管理会话。

通常,ORM 在内部管理会话,但正如您所说,您有不同的应用程序在同一 URL 下运行,您必须始终通过公开的 API 向该数据库询问用户信息。

遗憾的是,您不能纯粹在前端进行身份验证,因为 javascript 很容易被禁用,而且会话也不是万无一失的。您实际上可以继续使用的是行业普遍遵循的东西:OAuth。你可以阅读更多关于它的信息here

Oauth 使您能够拥有一个集中的授权系统,并作为所有登录授权的标准。每个身份验证调用,即使是来自您的旧应用程序,实际上也会被转发到 OAuth 服务器,该服务器验证并感应您返回的用户数据。虽然有很多方法可以做到这一点,但您显然可以通过一些已经实现的示例来了解它实际上是如何完成的。 Digital ocean 实际上很好地了解了 OAuth 的工作原理。

正如我所提到的,您始终可以在之前的应用程序之间共享 cookie,该 cookie 可以作为 API 的授权密钥,用于获取用户数据并且完全不需要单独的 OAuth 服务器,但即使在这种情况下,您'将需要公开一个 API 以根据 cookie 的会话变量获取用户数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 2017-11-30
    • 2013-05-24
    • 1970-01-01
    • 2013-03-03
    相关资源
    最近更新 更多