- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发一个具有某些社交功能的 PHP/MySQL 电子商务网站,并希望将其与 Facebook 集成。我已经有一个本地用户注册/ session 处理系统。我设法包含了 iframe“社交插件”,例如“喜欢”按钮。但我真的很想为用户提供通过 Facebook 在 native 注册过程中注册网站的选项。
我理解通过 OAuth 协议(protocol)获取访问 token 并最终获取用户 ID 的想法。我的担忧有两个方面:
这种方法安全吗?这是一个电子商务网站,但我没有存储任何信用卡或任何其他敏感数据。我想不出这会如何被利用,但我只有一个脑袋!
我了解如何在注册过程中检索初始 token 和获取用户 ID。但是我如何识别返回( session )用户?我是否必须为此实现 Javascript SDK(我想避免的事情)?或者,我是否像本地处理 session 一样处理 session ,但在适当的时候用 Facebook 用户 ID 替换 session cookie 中的普通用户 ID?
如果答案显而易见,我深表歉意。我搜索了 Google 和 Facebook 文档,但我找到的一半链接是指向已弃用的 FBConnect wiki 文章,新文档很有帮助,但示例很少。我不知道什么仍然受支持,什么是新的,以及如何做到这一点!
最佳答案
是的,Oauth 非常安全。许多应用程序都依赖它,但没有已知的方法来利用它。
您可以这样做的一种方法是存储用户的 Facebook id,这样当他们回来时,您可以看到他们的 id 已经存在于您的记录中,并且知道它是回访用户。他们的 session 可能不同(例如,自上次访问以来已过期),因此您不想存储他们的访问 token ;但他们的 Facebook 用户 ID 始终相同。
我在我的网站上集成 Facebook 注册/登录的基本方式是在我的用户表中添加一个 facebook_id 列和一个“使用 Facebook 注册”按钮。如果用户点击,使用 Facebook 进行身份验证,然后我返回一个 session 并且用户是新用户,我将重定向到注册页面,使用来自 Facebook 的数据(例如他们的名字)预填充尽可能多的字段,并将 Facebook id 添加为一个 Conceal 的输入字段。因此,当他们注册时,他们的 facebook_id 将被填充到数据库中。这是与标准注册页面相同的注册页面,因此与非 Facebook 用户的唯一区别是 facebook_id 字段将为空。如果需要,您也可以不要求 Facebook 用户提供密码。
要让用户登录,用户只需单击“使用 Facebook 登录”按钮并使用 Facebook 进行身份验证。一旦 Facebook 给我 session ,我就会让用户登录,就像在 Facebook session 中拥有 facebook_id 的任何用户一样。由于您担心安全问题,我会注意到此 session 无法伪造,因为它是使用只有您和 Facebook 知道的应用程序 key 签名的。如果您使用 Facebook 的 SDK(您应该使用),则不必担心签名和签名验证。您可以从 session 中读取连贯信息这一事实意味着 Facebook 的 SDK 已经对其进行了验证。
This Facebook page是将注册与 Facebook 集成的重要指南。
关于php - Facebook 登录作为现有登录的补充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3326315/
1.枚举类型 1.枚举数据类型是C语言中一种构造数据类型,可以让数据更加简洁,更易读,对于只有 几个特定的数据 ,可以使用枚举类型 2.枚举对应英文enumeration,简写为enum
PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助。 1.print_r() 打印关于变量的易于理解的信息,若为数组,则显示数组的结构信息. 例如
我从文件资源管理器重命名了一个文件,然后我将新文件添加到 SVN 并从终端删除了之前的文件。然后 svn 显示 D A 一旦我做了 svn rename 我发现 svn 也在做同样的事情 D A
int a=1; // a=1 in binary representation 0000 0000 0000 0000 0000 0000 0000 0001 int b =~a; 1111 111
我们有这样两个互补 map 的代码: private final Map idToName = new HashMap(); private final Map nameToID = new Tree
无阻塞加载javascript,对于页面性能优化有很大的作用,这样能有效的减少js对页面加载的阻塞。特别是一些广告js文件,由于广告内容有可能是富媒体,更是很可能成为你页面加载提速的瓶颈,高性能ja
这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时、准确信息的访问。SOA 有助于实现更多的资产重用、更轻松的管理和更快的开发与部署,在当今的业务环境中,变化是毫无疑问的,因此快速响应
1、错误处理 异常处理: 意外,是在程序运行过程中发生的意料这外的事,使用异常改变脚本正常流程 PHP5中的一个新的重要特性 复制代码代码如下: if()
假设我有一个 DNA 序列。我想得到它的补充。我使用了以下代码,但我没有得到它。我究竟做错了什么 ? s=readline() ATCTCGGCGCGCATCGCGTACGCTACTAGC p=unl
在What does the ^ operator do in Java?下提出了类似的问题 但我认为缺少了一些东西。 根据 @Carl Smotricz 的说法,当我们有一个例子时:“定义按位异或的
我有一个自定义的 UICollectionViewLayout,它利用 iOS 8 中的自调整大小机制。我的 UICollectionViewCell 的实现 preferredLayoutAttri
我正在使用 UICollectionViewController。在某些时候,我需要对可见页脚进行一些配置,对于每一个页脚,我都需要知道它的当前节号。当前,因为部分可能会被替换,并且可重用 View
在 Windows C++ 中工作并使用 GetCommandLine 获取函数中的参数。是否有类似的函数可以返回命令行中的参数数量? 我无法从 main 获取它,因为我正在使用 int WINAPI
我有一个带有 VideoView 的应用程序,它将不断循环播放相同的视频,直到用户对设备(触摸屏等)进行操作为止。目前,我正在使用 OnCompletionListener() 在视频结束后重新启动视
我有一个基于 BizTalk 的 WCF 服务,我不确定它是如何部署或生成的,但据我所知,它是使用 BizTalk 向导创建的,用于发布 WCF 服务。问题是 BizTalk 服务器安装已被删除,现在
我希望在我的 Collection View 的部分上放置一个标题。我有一个嵌入在 tablebview 中的 collectionview 。使用 TableView 的节标题会使标题离内容太远。将
我有一个 bool 字符串列表。每个字符串的长度为 6。我需要得到每个字符串的补码。例如,如果字符串是“111111”,则应为“000000”。我的想法是 bin(~int(s,2))[-6:] 将其
好吧,这就是问题所在,标题部分单元格的默认行为是粘在 Collection View 框架的顶部,进行了一些挖掘,但找不到删除此默认行为的方法,如果有人有线索的话怎么做,请分享。 这样做的主要原因是我
我有一个 UICollectionViewLayout 子类,其中包含一个包含多行 UILabel 的补充 View 。问题是并非所有文本在某个点都是可见的,我怎样才能让补充 View 的高度等于它的
我的观点与 Instagram 的主要故事提要类似。我在顶部有一个水平 Collection View ,其中有一个supplementaryView标题单元格,它看起来相同,但与其他单元格的行为不同
我是一名优秀的程序员,十分优秀!