我有两个应用程序:
我想通过使用快速服务器公开的API来验证和授权用户登录Angular2应用程序。我想使用Auth0作为我的IDP。我希望整个应用程序(客户端+服务器)是量身定制的。 同时:
答案 0 :(得分:1)
鉴于OAuth2对其指定的功能的很大一部分使用HTTP重定向,使用诸如那样的体系结构并强加许多约束将减少可以利用的可能性的数量。除此之外,我没有看到任何重大问题。
鉴于您不想使用重定向,您需要使用的OAuth2流是资源所有者密码授予(ROPC),主要是因为OAuth2提供的四个流是唯一一个会满足你的要求。
在请求1和2中,您将用户名和密码凭据首先传递到您自己的服务器,然后传递给授权服务器。在请求3和4中,由成功的用户身份验证产生的访问令牌被传递到AngularJS应用程序,该应用程序可以将其存储在localStorage
中供以后使用。
这符合您的确切要求,但它并不是最常用的架构。通常,SPA将使用隐式授权来获取访问令牌。鉴于此授权已针对此目的进行了优化,因此可以实现良好的UX特性,但是,它确实会使用重定向。
OAuth2 specification itself对眼睛来说并不难,这将是我推荐的最佳资源。为了更高层次和快速介绍该主题,我还建议https://auth0.com/docs/protocols/oauth2。