txlty
2013-12-29 02:22:34 +08:00
这就分两种情况了。你在A站有下发服务端代码给他们执行的权限?还是只有执行JS的权限?
两种情况,你都需要用户(A站)在页面里载入一个你网站(B站)域下的JS文件。
用户完成授权,返回到B站是在窗口里。可以执行关闭窗口操作。
父页面还是A站,在窗口关闭时,通过JS请求B站数据,以确认是否登录成功。
如果有服务端代码权限,那么:
授权成功后,将获得的access_token写入A站域下的cookie。cookie过期时间等于access_token过期时间。然后A站就可以用这个access_token调用API发微博了。(tx微博不行,因为tx调用API还需要appid)
如果像社会化评论框那样,只有JS执行权限。那么:
授权成功后,将以后需要的cookie写入B站域下。
发微博时,在A站通过JS向B站发出请求。所有与平台的交互,都由B站完成。A站通过JS与B站通信。
也就是说,A站本身与平台无关。
B站用正常oauth2.0调用微博平台API,登录、发微博,同时作为一个平台,接收A站请求。
跨域问题,通过动态载入JS的方式解决。