我们有两个应用App1
,其中域www.app1.com
和App2
带有域www.app2.com
。两个应用程序的后端都是使用django-rest-framework
的api。在前端,我们正在使用Angular2
。这两个应用程序都有不同的用户群,但现在我们决定合并用户群并想要一个身份验证服务。
两个应用都需要使用彼此的功能。我们想为用户提供无缝体验。如果用户在一个应用程序中被烧焦。它不应该从其他应用程序登录。
我做了一些研究,发现可以用SSO
来实现。以下是相关堆栈溢出问题(Implementing SSO with django)的链接。我也找到了很多图书馆。他们中的大多数都很老,所以不能使用遗留代码。
以下是我尝试过的库以及为什么这些库不适合我的问题。
jwt
。 那么请与SSO
分享如何实施rest-fraemwork
的方法吗?
答案 0 :(得分:0)
你可以做的是拿django-rest-auth项目https://github.com/Tivix/django-rest-auth并运行它作为中央认证服务器,让我们说app-3并调用它来从app-1进行认证APP-2。
这需要您整合您的用户数据库,并通过一个安静的身份验证服务提供服务。您仍然需要编写一个可以为您处理身份验证的RESTful cas客户端,或者您可以为此重新调整ng-cas代码的重用目标,它所需要的是mama-cas所需的ServiceTicket回溯服务器并基于它在django auth中创建会话,并在客户端服务器db中以视觉方式创建用户作为存根。
另一种选择是让妈妈让人感到安宁。所有mama cas都会在成功登录时创建一个ServiceTicket模型对象,并将其发送给使用“服务”的客户端。和#'门票' params并创建身份验证会话。无论您是否安静,都会创建身份验证会话,它是django架构中提供身份验证的一部分。
我们在整合我们的服务方面采取的措施是使用django-mama-cas服务器并使其变得更加安静。我在路线图上使用这种方法使其100%安静。
希望这会有所帮助......