Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有办法检查社交登录上是否存在带有特定电子邮件的Stormpath帐户?_Java_Stormpath - Fatal编程技术网

Java 是否有办法检查社交登录上是否存在带有特定电子邮件的Stormpath帐户?

Java 是否有办法检查社交登录上是否存在带有特定电子邮件的Stormpath帐户?,java,stormpath,Java,Stormpath,使用Stormpath,可以通过执行以下操作检查应用程序是否存在电子邮件: application.getAccounts(Accounts.where(Accounts.email().eqIgnoreCase(email))); 然而,我注意到Stormpath Social signin是基于目录的,不会检查其他目录中的重复项 例如,如果有一个用户使用电子邮件地址tunji@gmail.com然后同一用户再次尝试注册,他的gmail仍然是tunji@gmail.com,stormpath

使用Stormpath,可以通过执行以下操作检查应用程序是否存在电子邮件:

application.getAccounts(Accounts.where(Accounts.email().eqIgnoreCase(email)));
然而,我注意到Stormpath Social signin是基于目录的,不会检查其他目录中的重复项

例如,如果有一个用户使用电子邮件地址
tunji@gmail.com
然后同一用户再次尝试注册,他的gmail仍然是
tunji@gmail.com
,stormpath当前所做的是将两个用户保存在我的两个不同目录中(例如facebook目录和谷歌目录)。这不是我想要的

我希望能够确保如果
tunji@gmail.com
存在于任何目录中,不应将其注册到任何其他目录中。只需提取关联的帐户,并应代表同一用户

问题是Stormpath通过以下方式检索社会注册帐户

ProviderAccountRequest request = Providers.GOOGLE.account().setAccessToken(token).build();
ProviderAccountResult result = application.getAccount(request);
它只检查指定目录(google)中的关联帐户对象(不检查整个应用程序),如果该目录中不存在任何帐户对象,它会自动创建一个帐户对象并返回新的帐户对象,因此没有机会进行检查并决定是否创建帐户


在stormpath中是否有其他方法来实现此流程???

开发人员使用stormpath有两种不同的方法,并且完全基于他们的应用程序:

  • 他们希望应用程序以不同的方式对待Google/Facebook/用户名密码身份验证。通过社交方式登录的用户将受到不同的对待
  • 他们希望应用程序对Google/Facebook/用户名密码身份验证的处理方式相同。通过任何方式登录的用户将被视为同一用户
  • Stormpath开箱即用地支持#1,但我们确实有一些客户对#2有要求,他们通过利用Stormpath中的一个称为自定义数据的功能来实现这一点。使用自定义数据,开发人员可以在Google或Facebook目录与另一个应用程序中的实际“主”帐户之间创建单向或双向链接科托里

    工作原理:

    • 用户使用用户名/密码注册您的应用程序,并在云目录中创建帐户
    • 稍后,用户决定使用Google/Facebook登录
    • 成功登录Facebook或Google后,开发者从Facebook或Google帐户(由Facebook或Google验证)获取电子邮件地址,并通过电子邮件在云目录中搜索帐户
    • 如果在云目录中找到该帐户,则该帐户的href将存储在Facebook/Google帐户的自定义数据中
    • 在额外登录时,您可以检查Facebook或Google帐户中的自定义数据,并按照href键转到云目录中的实际帐户

    我希望这是有意义的。

    开发人员使用Stormpath有几种不同的方式,完全基于他们的应用程序:

  • 他们希望应用程序以不同的方式对待Google/Facebook/用户名密码身份验证。通过社交方式登录的用户将受到不同的对待
  • 他们希望应用程序对Google/Facebook/用户名密码身份验证的处理方式相同。通过任何方式登录的用户将被视为同一用户
  • Stormpath开箱即用地支持#1,但我们确实有一些客户对#2有要求,他们通过利用Stormpath中的一个称为自定义数据的功能来实现这一点。使用自定义数据,开发人员可以在Google或Facebook目录与另一个应用程序中的实际“主”帐户之间创建单向或双向链接科托里

    工作原理:

    • 用户使用用户名/密码注册您的应用程序,并在云目录中创建帐户
    • 稍后,用户决定使用Google/Facebook登录
    • 成功登录Facebook或Google后,开发者从Facebook或Google帐户(由Facebook或Google验证)获取电子邮件地址,并通过电子邮件在云目录中搜索帐户
    • 如果在云目录中找到该帐户,则该帐户的href将存储在Facebook/Google帐户的自定义数据中
    • 在额外登录时,您可以检查Facebook或Google帐户中的自定义数据,并按照href键转到云目录中的实际帐户

    我希望这是有意义的。

    非常有意义。谢谢。我实际上做了一些可能有点类似的事情。但是,由于每个stormpath目录的电子邮件都是唯一的,所以我使用的就是这样。这样,我就不必费心在多个目录之间同步href和customData了。+1“Stormpath中一个名为“自定义数据”的功能“注意事项”文章:非常有意义。谢谢。我实际上做了一些可能有点类似的事情。但是,由于每个Stormpath目录的电子邮件都是唯一的,所以我使用了这一功能。这样,我就不必担心跨目录同步href和customData了。+1用于”Stormpath中一个名为“自定义数据”的功能文章: