Java 是否有办法检查社交登录上是否存在带有特定电子邮件的Stormpath帐户?
使用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
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登录
- 成功登录Facebook或Google后,开发者从Facebook或Google帐户(由Facebook或Google验证)获取电子邮件地址,并通过电子邮件在云目录中搜索帐户
- 如果在云目录中找到该帐户,则该帐户的href将存储在Facebook/Google帐户的自定义数据中
- 在额外登录时,您可以检查Facebook或Google帐户中的自定义数据,并按照href键转到云目录中的实际帐户
我希望这是有意义的。开发人员使用Stormpath有几种不同的方式,完全基于他们的应用程序:
- 用户使用用户名/密码注册您的应用程序,并在云目录中创建帐户
- 稍后,用户决定使用Google/Facebook登录
- 成功登录Facebook或Google后,开发者从Facebook或Google帐户(由Facebook或Google验证)获取电子邮件地址,并通过电子邮件在云目录中搜索帐户
- 如果在云目录中找到该帐户,则该帐户的href将存储在Facebook/Google帐户的自定义数据中
- 在额外登录时,您可以检查Facebook或Google帐户中的自定义数据,并按照href键转到云目录中的实际帐户
我希望这是有意义的。非常有意义。谢谢。我实际上做了一些可能有点类似的事情。但是,由于每个stormpath目录的电子邮件都是唯一的,所以我使用的就是这样。这样,我就不必费心在多个目录之间同步href和customData了。+1“Stormpath中一个名为“自定义数据”的功能“注意事项”文章:非常有意义。谢谢。我实际上做了一些可能有点类似的事情。但是,由于每个Stormpath目录的电子邮件都是唯一的,所以我使用了这一功能。这样,我就不必担心跨目录同步href和customData了。+1用于”Stormpath中一个名为“自定义数据”的功能文章: