我想做微博账户和本站账户的绑定,及微博账户登录。我的思路是用java sdk和微博登录按钮的组件一起实现。
用户第一次点了微博登录按钮组件后,会有授权,在授权完成的回调页面里,完成微博uid和本站账户的绑定。然后每次用户点微博登录按钮,在回调函数里都能获得微博uid,用这个uid去登录本站账户。但是,微博api的文档说,这种做法不安全。确实,只要拿到微博uid,就能在本站冒充用户。现在就没方向了。请问还有什么方案吗?另外点击微博登陆按钮,会不会触发授权呢?因此去调用回调地址。微博登录回调地址账户

解决方案 »

  1.   

    你从文档哪个地方看到不安全的? = =
    授权的时候用上state参数防止CSRF
    在获取AccessToken后用AccessToken获取在第三方网站的唯一ID,拿到了AccessToken说明已经通过了第三方的认证。按这个流程还不安全,只能是他们的认证出了问题
      

  2.   

    OAuth2.0回调到你的网站,给你的只是一个code
    用code去获取AcessToken,用AccessToken去获取唯一ID,用唯一ID去数据库匹配本地的用户。你是这个流程吗?
    这样的话拿到微博ID又能做什么?
      

  3.   

    这是一开始的授权绑定的过程,没问题。但是之后再次通过微博登陆按钮登录呢?这个过程,调用微博的js widget:
    WB2.anyWhere(function(W){
    W.widget.connectButton({
    id: "wb_connect_btn",
    type:'3,2',
    callback : {
    login:function(o){ //登录后的回调函数
    alert("login: "+o.screen_name)
    },
    logout:function(){ //退出后的回调函数
    alert('logout');
    }
    }
    });
    });
    然后,登陆成功,回调login:function(o)。o参数直接就给我用户的微博信息,包括uid。现在微博是登录了,但是本站还没登录。微博的这个账号还没对应到本站的一个账户。我想的是早login回调方法里ajax访问登陆的url,把uid发过去,登陆。但是这样做不安全。所以我在想,再次按微博登录按钮的处理中,是不是还会有授权的过程,会不会再调用授权回调地址??或者有其他的方案?
      

  4.   

    安全问题我是看的这个文档:
    http://open.weibo.com/wiki/%E5%BA%94%E7%94%A8%E5%AE%89%E5%85%A8%E5%BC%80%E5%8F%91%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9