如何使用社交网络登录公共Lotus Domino Web应用程序

Tho*_*ian 1 facebook oauth lotus-domino xpages

我有一个用xPages创建的公共网站,我的用户没有登录到Domino(即匿名),但我仍然希望显示已经登录到Facebook或Twitter的用户的信息,如图像或用户twitter流,也许让我们他们可以使用fb/twitter登录我的网站,这样我就可以存储一些关于它们的数据供下次访问.

我不想为此在任何domino目录中创建用户,而是将我需要的数据存储在应用程序中的配置文件/文档中.通过这种方式,我可以存储来自用户的数据,而无需在domino目录中创建新字段.

为了使它更容易理解.假设我想建立一个使用多米诺骨牌应用程序销售东西的产品网站.当用户进入网站时,他们可以选择注册我的应用程序或使用例如facebook或twitter登录.当他们购买商品或发表评论时,他们已经登录并且不需要输入用户数据.用户数据来自社交网络或我在我的应用程序中的配置文件.

现在谈谈一些问题......

  • 使用多米诺骨牌应用程序可以轻松完成吗?或者使用其他平台构建它更快?

  • 我知道我需要做一些oAuth身份验证来连接twitter和facebook,但是如何将这些数据连接到我的应用程序中的配置文件?

  • 如果用户选择注册我的网站而不是登录到twitter/fb,我将如何对这些用户进行身份验证,并根据他们是使用Twitter登录还是使用我的个人资料文档来使用不同的身份验证.

  • 我可以oAuth启用我的Domino应用程序吗?

/托马斯

Ser*_*mez 5

托马斯,

你按下了右键:)

我已经为此做了很多工作.我可以分享我的结果......

首先,社会推动者不能这样做.因为当前的OAuth实现基于用户在Domino目录中具有真实身份的假设(因为令牌库正在按用户名工作).如果您想将用户放入Domino目录,Matt的解决方案非常棒.

我已经开始实施Twitter登录而无需注册用户.这将是一个OpenNTF项目.但它变得缓慢:(

你的问题中有两个不同的东西.Social Enabler有一个OAuth客户端,允许将FB/Twitter用户标识绑定到Domino用户.就您的问题而言,它不是"登录".

另一方面,为了利用外部应用程序中的Domino资源,我们需要Domino服务器中的OAuth提供程序.Phil在LS12上提供了相关信息.他们将很快实现一个提供商并将其放入OpenNTF.他们将来必须这样做,否则他们就无法有效地使用嵌入式活动.因此,您可能会认为这将成为未定义未来产品的一部分.但这与"Login by FB"架构无关.这可用于实现与XPage应用程序交互的Facebook应用程序.

使用FB登录的体系结构就是这样.您将在您的应用和Facebook之间提供OAuth舞蹈,收集用户的FB身份并将其存储在"个人资料"商店中.该商店还可用于记录用户特定信息.此时,您有三个方向:

  1. 将用户导入Domino目录(通过Directory帮助可信)并实现身份验证技巧(请参阅Matt的解决方案).
  2. 用户可以保持匿名,但您可以扩展用户bean对象以通过此bean与他/她进行交互.
  3. 创建LtpaToken以对用户进行身份验证.我发现了怎么做.它应该仔细实现,实际上用户不需要在受信任的目录中注册.但是存在安全风险,应该谨慎处理.

还有一件事!考虑许可也很重要!您需要为此使用适当的许可模型(如XWork).使用哪种方法并不重要.由于您要识别用户,因此它将被视为经过身份验证的用户.

希望这有助于为您的项目创建草稿方向.