【发布时间】:2014-10-16 05:31:38
【问题描述】:
对于如何保持 OAuth2 身份验证的问题,我似乎找不到简单的答案...我们以 Google+ OAuth2 API 为例。
- 用户转到页面
- 用户未通过身份验证,并被重定向到他登录的身份验证页面
- 用户成功登录并授权我的应用
- 用户通过授权码被重定向到指定的(由我)URI
- 我使用授权码获取令牌以便以用户的名义提交查询
一切都很好。我的问题是:您如何在第 2 步安全地知道访问该页面的用户已经登录,而不必经历将他重定向到所有这些页面的整个过程。
我假设将在第 4 步检索到的授权代码存储在 cookie 中不是一种选择。
所有这些都将发生在服务器端(Go - 如果这很重要)应用程序中。 非常感谢任何帮助...我需要一个简单的解决方案。
谢谢!
【问题讨论】:
-
OAuth 不保留信息。用户成功完成流程后,设置一个 cookie(安全,仅限 HTTP)和一个合理的到期日期,并生成一个安全的随机数以与他们的帐户相关联并让他们保持登录状态。在签名的 cookie 中存储时间戳有助于避免重放攻击。期待使用gorillatoolkit.org/pkg/sessions
-
我知道它没有,因此问题:) 我会研究 gorilla/sessions 虽然我可能想要一个没有 3rd 方库的解决方案。谢谢!
-
Go 有一个 http.Cookie 类型,但考虑到在不知情的情况下搞砸(签名、加密)是多么容易,我会小心滚动自己的会话存储。
标签: authentication cookies go oauth-2.0 google-oauth