gpt4 book ai didi

java - 使用数据库和社交网站登录

转载 作者:行者123 更新时间:2023-12-04 05:07:22 25 4
gpt4 key购买 nike

我有一个拼车网站,用户可以通过我的数据库登录,一切正常。

登录后,用户可以发布拼车广告。

现在我的需求是让用户通过 Facebook 登录。这种情况如何处理?

案例 1:用户未在我的数据库中注册并使用 Facebook 凭据。我可以显示只读页面,但现在说用户要发布广告,在这种情况下我该怎么办?

我的数据库的结构使得 postAd 表具有 user_id 作为外键,所以在这种情况下,我应该添加一个具有该 email_id 的用户和一个虚拟密码以允许他们发布吗?或者如何处理这种情况?

案例 2:如果用户使用 Facebook 登录,我是否需要使用该电子邮件 ID 在我的数据库中搜索才能找到该用户?

我正在使用 Spring 安全性。

这样的网站通常如何运作?

谢谢。

最佳答案

看看 Spring SocialSpring Social Facebook项目。他们是这样:

  • 对于案例 1:有 Implicit sign up feature .您必须提供 ConnectionSignUp 实现,该实现将在 FB 连接建立但 DB 中没有相应用户时调用。您可以在此处创建新的数据库用户。
  • 对于案例 2:有一个 SignInAdapter 接口(interface)(参见 ProviderSignInController's dependencies
    章)。您可以通过 userId 找到 DB 用户,然后准备 autentication 并将其注入(inject) SecurityContextHolder。

  • 一般想法:您可以有多个提供者(FB、Twitter 等),但在任何情况下,每个社交资料都将与某个 Spring Security 用户匹配(例如,将用于授权)。如果它们通过 userId 匹配,那么您可以为多个社交帐户拥有一个 Spring Security 用户。
    这种方法的优点是您可以更好地控制用户配置文件(即使 FB 帐户处于 Activity 状态,您也可以禁用本地用户帐户)。您可以从 Java 代码中使用 Facebook API。

    作为选项 2,您可以通过 JavaScript 进行 FB 登录。然后手动实现案例 1 和案例 2 的两个功能(例如通过自定义过滤器)。它可能更轻量级(取决于您需要哪些功能)。

    关于java - 使用数据库和社交网站登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15357615/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com