目录
回复讨论(解决方案)
首页 后端开发 php教程 怎样处理第三方api登陆?!

怎样处理第三方api登陆?!

Jun 23, 2016 pm 02:06 PM

现在腾讯、新浪、豆瓣、百度等都支持第三方登陆,允许第三方网站访问其用户信息。虽然这样减少了本网站用户的注册步骤,但发觉在第三方api的用户信息处理上有点麻烦。
一般情况下,本地网站都要求首次利用第三方登陆的用户进行本地绑定,要么绑定已有本地帐号,要么要求用户再填写一些本地信息,比如昵称等。
我原先将本地用户注册的mysql表与第三方api的mysql表分开。本地用户表为:

userid username password gender registertime loginnum registeraddress ip ...
登录后复制

因为第三方api返回的信息不尽相同,因此只能贮存一些基本信息,绑定表与本地表相比则有所改变:
userid nick figureurl api_supplier ip loginnum  ...
登录后复制

但这样一来,一个访问用户则需要区别对待,分别处理,后面的事情一大堆,比如权限等。凌乱了。。。

我想问下csdner怎样处理第三方登陆,包括mysql与php的处理。。。


回复讨论(解决方案)

因为,本地表与第三方的userid列值可能存在冲突,也不可能合并吧?!

因为,本地表与第三方的userid列值可能存在冲突,也不可能合并吧?!
要么在本地表的最前面加一个auto_increment的id列,但这样有些列因为用不到则可能浪费掉

本来是各自独立的系统,合并了就没有“第三方”了

每个API塔都有返回一个唯一值的,可以用他的这个唯一值区分,不一定要分表

本来是各自独立的系统,合并了就没有“第三方”了
我知道,问题是第三方登陆以后要分配一个session给它吧,如果与本地用户系统区分处理,岂不是又要增加一套程序处理?

每个API塔都有返回一个唯一值的,可以用他的这个唯一值区分,不一定要分表
如果只是引用第三方登陆,没有进行本地绑定,则这个“外来”账号没有本地积分、空间等数据。。。

变通一下啊,插入会员表啊,用户名就随机的,这样不就有账号了么

变通一下啊,插入会员表啊,用户名就随机的,这样不就有账号了么
谢谢,我知道,但总觉得有不方便的地方

有什么不方便?因为使用第三方登录的就用第三方登录,有些用户习惯用第三登录,,用绑定的时候是方便原有的用户或者想使用2种方式的用户使用的,还有一个因素是假如第三方的登录出现问题时,用户如果想登录还可以通过绑定的账号来登录,不会造成因为第三方登录不能登录时而影响了本站用户的使用

有什么不方便?因为使用第三方登录的就用第三方登录,有些用户习惯用第三登录,,用绑定的时候是方便原有的用户或者想使用2种方式的用户使用的,还有一个因素是假如第三方的登录出现问题时,用户如果想登录还可以通过绑定的账号来登录,不会造成因为第三方登录不能登录时而影响了本站用户的使用
不觉得要对程序进行很多修改昧?!
我先看看吧

我想好了,所有第三方api登陆都与本地user表关联绑定,用户通过第三方登陆时分配一个userid给他,user表最后增加一个thirdPartyAPIid,表示来源,当然,本地用户的这列值为null。这样就好处理多了。
user表

userid username email password ... third_party_api_id
登录后复制

third_party_api表
id userid username email ... provider
登录后复制

user表third_party_api_id与third_party_api表的id关联,这样,无论通过何种方式登陆都能控制用户行为 。

呵呵,我告诉你的思路是没问题的,我做这个很久了,而且根本不需要修改程序的,就只是做好第三方接口登陆,给予与本地一样的cookie或者session就可以了

呵呵,我告诉你的思路是没问题的,我做这个很久了,而且根本不需要修改程序的,就只是做好第三方接口登陆,给予与本地一样的cookie或者session就可以了
多谢,就这么定了,我现在正在看各网站提供的第三方登陆接口说明。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

会话如何劫持工作,如何在PHP中减轻它? 会话如何劫持工作,如何在PHP中减轻它? Apr 06, 2025 am 12:02 AM

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

在PHPStorm中如何进行CLI模式的调试? 在PHPStorm中如何进行CLI模式的调试? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

如何在系统重启后自动设置unixsocket的权限? 如何在系统重启后自动设置unixsocket的权限? Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

See all articles