我试图在我的应用程序中实现登录与facebook / twitter功能,我阅读oAuth的一些指南,我想我理解了一些基本概念,这是我理解的(如果我错了请纠正我):
- myApp向oAuth提供者发送请求,获取(A)请求令牌。
- 发送用户验证(A),返回(B)经过身份验证的请求令牌(这是什么称为oAuth令牌?)
- 使用(B)获取(C)访问令牌。
- 使用C来访问用户信息。
这是我无法解决的问题,我应该使用/存储哪一个来识别用户?我想到了使用其中每一个的可能性,但我总是坚持如何检查用户是否已登录...
我试图在我的应用程序中实现登录与facebook / twitter功能,我阅读oAuth的一些指南,我想我理解了一些基本概念,这是我理解的(如果我错了请纠正我):
这是我无法解决的问题,我应该使用/存储哪一个来识别用户?我想到了使用其中每一个的可能性,但我总是坚持如何检查用户是否已登录...
如果只需要身份验证,那么只需存储即可 user_id 足够。
所以创建另一个表,如:
id | service_name | user_id | my_user_id
哪里 service_name 或者是 twitter 要么 facebook, user_id - 来自twitter / facebook和用户的id my_user_id 是一个 user_id 在您的身份验证系统中
所以:
SELECT my_user_id FROM oauths WHERE service_name = 'twitter' AND user_id = 42
会返回你的系统user_id或什么也没有
PS: service_name 可以(并且应该)进行规范化,我将其保留为字符串只是为了简化示例
PPS:正如你在评论中所说,你可能想要“发帖/发推”。
在这种情况下,您需要为Twitter存储用户的访问令牌,并且不为facebook存储任何其他内容,但请求 publish_stream 验证用户时的权限。
如果只需要身份验证,那么只需存储即可 user_id 足够。
所以创建另一个表,如:
id | service_name | user_id | my_user_id
哪里 service_name 或者是 twitter 要么 facebook, user_id - 来自twitter / facebook和用户的id my_user_id 是一个 user_id 在您的身份验证系统中
所以:
SELECT my_user_id FROM oauths WHERE service_name = 'twitter' AND user_id = 42
会返回你的系统user_id或什么也没有
PS: service_name 可以(并且应该)进行规范化,我将其保留为字符串只是为了简化示例
PPS:正如你在评论中所说,你可能想要“发帖/发推”。
在这种情况下,您需要为Twitter存储用户的访问令牌,并且不为facebook存储任何其他内容,但请求 publish_stream 验证用户时的权限。