我的 Web 项目开发为两个应用程序: i) Node.js 中的后端应用程序 ii) Angular.js 中的前端应用程序
是否可以在项目中使用两个实现单点登录,或者需要将后端和前端组合为单个应用程序。
据我所知,如果有两个独立的应用程序,那么它们就有独立的用户 session 和状态。因此,在我的场景中,前端登录可能无法使用单点登录链接到后端。
最佳答案
openid Connect 在您的场景中运行良好。前端 Angular 应用程序使用 openid 连接服务器发起 SSO,并接收 id_token 和 access_token。 Angular 前端应用程序使用 id_token 作为身份验证 token 。一旦用户被授权访问前端应用程序,Angular 应用程序就会在 Authorization header 中断言 access_token 以调用后端 Node.js 应用程序。如果access_token是JWT,Node.js可以在本地验证access_token。如果 access_token 是不透明的 token,通常 Node.js 会调用 openid conenct provider 中的 remote token introspection API 来验证 access_token。综上所述,前端angualr是典型的openid connect流程,后端Node.js是OAuth资源服务。
关于angularjs - 具有单独后端和前端应用程序的项目的单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51040567/