如何通过OAuth服务(如google)进行身份验证后“挂起”Angular范围变量

时间:2013-12-02 01:00:18

标签: angularjs oauth

这是我试图解决的问题(我100%肯定我在我的node.js / angularJS网络应用程序中问“正确”问题):

  1. 该应用的经过身份验证的成员可以“邀请”任何拥有电子邮件地址的人。
  2. 受邀者可以使用谷歌(OAth 2.0)或他们的电子邮件地址和密码进行注册。
  3. 在任何一种情况下,被邀请者都可能选择使用与发送邀请的电子邮件不同的电子邮件地址(他们输入的谷歌或其中一个)注册。
  4. 我想将这两封电子邮件关联起来,我很难搞清楚如何这样做。
  5. 我目前的做法:

    邀请电子邮件中的URL包含一个引用收件人电子邮件的唯一参数。当遵循该链接时,我使用角度服务存储该参数 - 与用于在用户进行身份验证后存储用户相同。

    问题(或至少其中一个):

    当我调用google身份验证时,随后通过callbackUrl将用户返回到我的网站,我的角度服务实例不再引用初始被邀请者的电子邮件,我认为这是预期的,因为我是用户离开了角度申请然后返回。因此,我无法将其与google身份验证返回的电子邮件进行比较,如果它们不同,则会提示用户,加入他们,等等。

    从首次将用户访问网站的链接转移到OAuth流程的另一端时,最好的方法是抛弃该引用?

    或者,我应该考虑采用不同的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以在誓言请求中传递状态参数。然后,Google会使用誓言响应返回相同的参数:

https://developers.google.com/accounts/docs/OAuth2UserAgent - >参数:状态