authentication - 在 Meteor 应用程序中实现非基于 oAuth 的身份验证?

标签 authentication cookies oauth meteor

我正在尝试修改 Meteor 应用 ( Telescope ) 以使用非基于 oauth 的身份验证。

更具体地说,我想使用较大的 Web 框架设置的 cookie 作为基于用户名/ token 的身份验证机制。具体来说,我希望客户端将用户名和 token 从其 cookie 传递到服务器。然后,服务器会将用户名和 token 传递到我的身份验证服务器,该服务器将验证 token 是否新鲜且与用户名匹配。

我对如何在帐户框架中使用它感到困惑。我认为可以扩展 Accounts.validateLoginAttempt 来执行检查,但是没有真正的方法将 cookie 信息传递给该方法,是吗?

或者,我可以创建一个新的 account-xxxx 包,但所有其他帐户包似乎都使用 oauth - 创建一个非 oauth 包是否会超出我的承受范围?

或者我缺少更简单的解决方案吗?

最佳答案

您可能会考虑(通过技术)简单的事情是loginToken。您会注意到,在 Meteor 用户集合中,services 属性下有一个名为 resume 的列表。

其中包含用户可以用来登录的预先身份验证 token ,而无需询问登录详细信息(通常用于已经登录该设备的用户,类似于 cookie)。

唯一的区别是它使用 localStorage 而不是 cookie,看起来有点像这样:

Meteor.loginToken         => 4Cs_abcdEfghijklmn42cf4444445577889900120
Meteor.loginTokenExpires  => Wed Oct 08 2014 23:22:46 GMT
Meteor.userId             => abcDEBG4Abc45A5vg

如果您能够从用户的简历中获取(或创建)简历项目,您可以使用它来登录,也许使用一些其他逻辑(例如包含 token 的链接 - 就像来自电子邮件的链接)来设置 localStorage您的望远镜应用程序中的上述项目。

要将其设置为 localStorage.setItem('Meteor.loginToken', '4cs_abcde....') 以及您已验证的 token 。

请记住,当您将用户发送到望远镜应用程序时,您应该使用某种过期 token 或其他东西(可能在您提到的 cookie 中)验证用户,因为这确实可以让人们非常轻松地登录。

关于authentication - 在 Meteor 应用程序中实现非基于 oAuth 的身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24689911/

相关文章:

php - CAS 协议(protocol) - 刷新 token ?

php - 用户登录后如何显示页面

javascript - 身份验证后运行 Javascript 而不是重定向

language-agnostic - 选择哪种身份验证机制?

cookies - 使用 Cookie 获取 API

php - 在 PHP 中使用 session 和 cookie 创建安全登录

javascript - 需要帮助创建可保留当前背景和文本颜色的 cookie

android - 使用 ngCordova-oauth 在 Ionic App 中进行社交身份验证

python & smtplib : Is sending mail via gmail using oauth2 possible?

java - oauth2 的 Spring Security 向授权 URL 添加附加参数?