1

我希望用户在我的 Xamarin monotouch 应用程序上使用社交网络帐户登录/发布。

Xamarin Social 似乎勾选了这些框,但是将密钥存储在移动设备应用程序而不是服务器上(因此身份验证和令牌/代码检索是集中执行的)是一种好的做法/安全吗?

或者它应该是一种更加混合的方法,其中秘密应用程序密钥存储在服务器上,并在向社交身份验证提供商验证移动设备时通过 Web 服务调用传递给 Xamarin Social(或 Xamarin Auth)(即,从而防止存储从应用程序本身反编译的密钥)?

请告知,因为我很想知道什么是最好的方法,因为我在 Instagram OAuth 说明上阅读过,您永远不应该将应用程序秘密 oauth 密钥放在移动设备中。

4

1 回答 1

0

我认为您混合了密钥问题,例如,Web 服务器使用 facebook 应用程序密钥来更改应用程序范围的设置,而应用程序密钥只是您的应用程序的标识符,应该嵌入到客户端中,以便客户可以拨打正确的 Facebook 应用程序。

在这里可以找到更多信息: 访问令牌

正如我从Instagram Authentication docs中看到的那样,它看起来与 facebook oauth2 身份验证非常相似,您可以在其中提供重定向 url,并且在所有用户确认之后,用户将与访问令牌一起被重定向到上面的给定 url(请注意,在此您不需要提供应用程序机密的场景)

但并不总是这样,每个社交网络都有自己的身份验证机制,谷歌的 Oauth2 api 也有“客户端秘密”,但它不是这样的秘密,例如在 javascript 应用程序中,您必须在应用程序本身中嵌入客户端秘密为了通过 OAuth2 向 google 进行身份验证,可以在此链接中阅读: Using OAuth 2.0 to Access Google APIs

因此,这与 Xamarin.Social 是否使用客户端密码无关,而是您尝试连接的服务器的工作方式。

于 2013-09-23T15:59:38.350 回答