我希望用户使用我的Xamarin monotouch应用上的社交网络帐户登录/发布。
Xamarin Social似乎打勾,但将密钥存储在移动设备应用程序而不是服务器上是不错的做法/安全(因此身份验证和令牌/代码检索是集中执行的)?
或者它应该是一种更混合的方法,其中秘密的应用程序密钥存储在服务器上,并在将移动设备验证到社交身份验证提供程序时通过Web服务调用传递给Xamarin Social(或Xamarin Auth)(即因此阻止从app本身反编译存储密钥)?
请告知我,我很想知道什么是最好的方式,因为我在Instagram上阅读OAuth说明,你永远不应该将应用程序秘密的oauth密钥放在移动设备中。
答案 0 :(得分:0)
我认为你混合了秘密密钥问题,例如facebook app secret-key被web服务器用来改变应用程序范围的设置,而应用程序密钥只是你应用程序的标识符,应该嵌入到客户端,以便客户端可以拨打正确的Facebook应用程序。
所有这些都可以在这里找到: Access Tokens
正如我可以从Instagram Authentication docs读取它看起来非常类似于facebook oauth2身份验证,您提供重定向网址,在所有用户确认之后,用户将被重定向到上面的给定网址以及访问令牌(请注意,在这种情况下,您不需要提供应用程序保密)
但它并不总是这样,每个社交网络都有自己的身份验证机制,谷歌的Oauth2 api也有“客户端秘密”,但它不是这样的秘密,例如在javascript应用程序中你必须将客户端秘密嵌入到应用程序本身,以通过OAuth2进行谷歌身份验证,可以在此链接中阅读: Using OAuth 2.0 to Access Google APIs
所以它不是关于Xamarin.Social使用客户端密钥,它是你尝试连接的服务器如何工作。