Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在网站和移动应用程序之间共享Facebook访问令牌_Ios_Facebook_Mobile_Access Token_Facebook Access Token - Fatal编程技术网

Ios 在网站和移动应用程序之间共享Facebook访问令牌

Ios 在网站和移动应用程序之间共享Facebook访问令牌,ios,facebook,mobile,access-token,facebook-access-token,Ios,Facebook,Mobile,Access Token,Facebook Access Token,我想要一个网站(Rails3.1,带有Desive和Omniauth)和一个移动应用程序(iOS5)来共享身份验证。我的意思是,我希望用户能够通过Facebook访问站点,或者通过移动应用程序访问SSI,并让移动应用程序使用用户的凭据与网站的API进行对话,以对网站进行身份验证 目前,我的web端与一个能够向帐户发送SSI的用户配合得很好。我也有移动应用程序工作,支持用户SSI。两者都使用相同的Facebook应用程序 我的问题是找到两者之间共享的东西,我可以使用这些东西让移动应用程序对站点进行

我想要一个网站(Rails3.1,带有Desive和Omniauth)和一个移动应用程序(iOS5)来共享身份验证。我的意思是,我希望用户能够通过Facebook访问站点,或者通过移动应用程序访问SSI,并让移动应用程序使用用户的凭据与网站的API进行对话,以对网站进行身份验证

目前,我的web端与一个能够向帐户发送SSI的用户配合得很好。我也有移动应用程序工作,支持用户SSI。两者都使用相同的Facebook应用程序

我的问题是找到两者之间共享的东西,我可以使用这些东西让移动应用程序对站点进行身份验证。显然,两者都可以访问相同的用户ID,但这似乎不是很安全。我的移动应用程序有一个访问令牌,但这与网站的访问令牌不同,尽管它们看起来很相似,而且我的移动访问令牌过期,而我的web访问令牌过期

Web/Rails令牌(非真实):

DDDAKNU1DG40BDHEWN0VDSSXS8GGF8ZBEEOB38HNS0IUEQC1NSUFMPCCGEFKTUW39ZDL7OHLZBD2JWJEQXDAZCTZBFLJRQZB4ZA

移动/iOS令牌(非真实)

BDDAKNU1DG40BDEO3YJZD2HIWJFZB4SLXJ3FMHFZLH5Q1XZD0SHFJCB6PMJNAPPM0FTUGGVWNZZBQY4GZCMuyseeqHMZ8YGRUD53TXKTZC0GPFKE0B6FE8WIELLOZDDZA

使用Facebook的我得到以下信息(所有移除的令牌都是相同的):

对于Web/Rails令牌:

App ID: 
XXXXXXXXXXXXXXXX : SomeAppName
User ID:    
XXXXXXXX : My Name
Issued: 
1327507734 : 8:08 am Jan 25 2012
Expires:    
Never
Valid:  True
Origin: Web
Scopes: email offline_access
对于移动/iOS:

App ID: 
XXXXXXXXXXXXXXXX : SomeAppName
Metadata:   {"sso":"iphone-safari"}
User ID:    
XXXXXXXX : My Name
Issued: 
1327507734 : 8:08 am Jan 25 2012
Expires:    
Never
Valid:  True
Origin: Native Mobile
Scopes: email offline_access

您必须在facebook API、授权和

[self authorizeWithFBAppAuth:YES safariAuth:YES];


因为有时候当你想通过fbApp或Safari进行身份验证时,令牌会出现问题。我也遇到了同样的问题,我的web服务中的令牌因此而不同。

为了记录在案,我最终处理这个问题的方法是将移动令牌传递给服务器,并让服务器检查令牌的真实性。一旦确认,我就可以使用uid和电子邮件对我的记录进行身份验证

解决这个问题的一个可能方法是通过手机上的facebook进行身份验证,然后将加密的f_-uid发送到rails应用程序,该应用程序将解密f_-uid,并查看谁实际登录到服务器

你好。你找到解决这个问题的办法了吗?我现在面临着同样的问题…嗨。不,不幸的是没有。奇怪的是,这似乎是一个相当普遍的要求。花了很长时间寻找,但没有发现有用的东西。我的应用程序没有非常严格的安全要求,但是,我们所做的只是与Facebook进行检查,找到与每个访问令牌相关联的用户id以匹配accounts@alex运气好吗?你是怎么解决的?我都是用阻塞的方式解决的。我实际上不使用任何内置库,只是自己处理请求。在这种情况下,只需简单地调用graph.facebook.com/me并解析一些JSON即可。我不明白你的答案-如果从应用程序和web登录的令牌不同-你如何验证它?比方说一个从应用程序中登录的应用程序-你如何在网络通话中使用它?
[self authorizeWithFBAppAuth:NO safariAuth:NO];