django - Web 应用程序中基于 Stormpath token 的身份验证

标签 django authentication oauth oauth-2.0 stormpath

我有一个使用stormpath身份管理服务的网络应用程序。

Stormpath 对我来说是新的。到目前为止,我的理解是您可以注册并登录到stormpath,stormpath 将为您提供访问 token 。每个帐户都与一个 application_id 相关联。对吗?

我读了这两篇文章

http://docs.stormpath.com/guides/token-management/

https://stormpath.com/blog/build-api-restify-stormpath/

所以我对我的用例/场景有几个问题。 这里有 3 个主要组成部分。

1) Storm 之路

2) 一个网络应用程序(我们称之为 WA1),它使用stormpath 进行身份验证(该应用程序工作正常)

3)另一个Web应用程序(我们称之为WA2)将使用stormpath登录(对于相同的应用程序ID)和上述Web应用程序(WA1)公开的另一个API。

如果我登录我的应用程序(WA2),我会得到一个 token 。现在我如何使用此 token 访问 WA1 公开的 api。

如果我直接从stormpath注销,我是否仍会登录我的应用程序。 如果是,那么我们之后如何验证用户身份。

这些查询可能听起来很愚蠢,但相信我,我读了又读,但无法理解流程。如果您能解释一下那就太好了。

PS:我正在使用 Django + django-stormpath(在 WA1 中) 和 Angular/Node/express(在 WA2 中) PPS:还是整体基于 session 的身份验证(第一次登录后)?

最佳答案

我在 Stormpath 工作我应该能帮忙。我们的框架集成(Django、Express)将使用 Stormpath API 在用户登录时创建访问和刷新 token ,这些 token 存储在 Http-Only cookie 中,无法从 JavaScript 访问。如果您的两个 Web 应用程序位于同一根域,您也许能够在应用程序之间共享 cookie。如果应用程序不在同一域中,您有两种选择:

  • 使用我们的ID Site feature ,在不同域的两个应用程序之间维护单点登录 cookie。

  • 使用 /oauth/token 端点 that our framework integrations provide ,手动获取 token ,然后将它们存储在本地存储中,以允许您以跨域方式使用它们的方式。注意:本地存储确实存在安全漏洞,特别是XSS漏洞。

希望这个回答对你有帮助!您还可以通过 support@stormpath.com 联系我们。

关于django - Web 应用程序中基于 Stormpath token 的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36607001/

相关文章:

swift - 我如何允许拥有自己的松弛帐户/公司的用户在我的应用程序中登录到他们的松弛帐户

python - 如何在 Django 中对模型的所有实例求和

python - Django 中的 "app"是什么?

ios - 登录后保存 userDefault token

angularjs - 如何在 postgresql 中存储 Oauth 响应?

c# - 在 Asp Net Core 6 中使用 Github 进行身份验证

python - 如何在Django View 中知道并引发确切异常

python - Django 测试客户端提交带有 POST 请求的表单

authentication - gcloud:ssh-ing到服务器时权限被拒绝(公钥)

ios - 对 setPhotoURL : after commitChangesWithCallback 的调用无效