Facebook SDK登录URL公开客户端密钥?

时间:2013-02-28 15:35:28

标签: facebook facebook-c#-sdk

我目前正在建立一个网站,我将为用户提供在Facebook上分享照片的链接,该应用程序将:

  • 为用户提供从Facebook请求权限的链接
  • 使用用户接受权限的访问代码重定向回网站
  • 服务器端将照片发布到用户的照片

要生成第一步的链接,我这样做:

var fb = new FacebookClient();
var options = new
{
    client_id = "MY_APP_ID",
    client_secret = "MY_APP_SECRET",
    redirect_uri = string.Format("http://localhost:51182/Home/FacebookShare?path={0}", Server.UrlEncode(path)),
    response_type = "code",
    scope = "publish_stream"
};
var loginUrl = fb.GetLoginUrl(options);

然后将此loginUrl值添加到我的MVC ViewModel中,并在View中的链接中使用。

但是,我注意到loginUrl以明文形式包含client_secret值。这不是一件坏事吗?用户不应该看到client_secret吗?我是以错误的方式解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

fb.GetLoginUrl方法相当简单,因为它只是将您在options对象中提供的任何内容添加为创建的URL的参数。

所以拿

client_secret = "MY_APP_SECRET",

来自您的options对象,它不应再出现在登录网址中。