On Wed, Jan 30, 2008 at 12:30 PM, Reinoud Elhorst <[EMAIL PROTECTED]> wrote:
> On 1/30/08, Brian Eaton <[EMAIL PROTECTED]> wrote: > > > > OK, I think the answer to this question is that the container and the > > gadget server need to collaborate closely. If the gadget server has > > enough information to validate and decrypt the security token it is > > already tightly coupled (sharing keys) with the container. They need > > to have a common understanding of policy as well. > > > > There's more than one way to pass that policy information between the > > container and the gadget server. Depending on how much information > > there is it might fit into the security token, or you might want to > > have them share a backend data store that they use to reference > > policy. > > > I think I'm staring to get it. Still, there may be situations that the > permission to view the viewer information is obtained client side (so > neither the container nor the gadget server have any knowledge of this) > though opensocial.requestPermission. I can imagine that in quite some > implementations, this call will pop up something on the container-page > (through rpc/ifpc) asking for permission to send viewer data to the > gadget. > As I come to think of it, if you don't want to route your opensocial > dataRequest calls through ifpc to the container page, you're going to > need > some extra token there to let the dataRequest call know that permission > was > obtained. This same token can (should?) then be used to let the gadget > server know that the gadget has access to the viewer information. > > I'm actually not quite sure on how much of the requestPermission has > already > been implemented in shindig; perhaps I'm just stating the status quo here. We haven't implemented it yet in shindig. I would imagine though that if you want to pop up a dialog to the user you would ifpc to the parent page, the parent page would pop up a dialog and get the users input. You would then need a server call from that outer page back to your server to store the bit in your data storage. Then, the ifpc calls back to the inner iframe with the result (if needed). You could instead just have that call be a redirect to a new page on your site and when it completes you would just go back to the original page and reload all of the gadgets. This is also perfectly spec compliant. So either way you either need to navigate the page or use ifpc for anything that needs user input (because you can't trust anything that comes from the iframe) This is slightly different from any calls that just get data from the server though. Because you don't need any user input the calls can not be faked from the users perspective, which means you can call directly back to your server and do not need any ifpc to the outer container if you use the special token on the hash. Does that makes sense at all or did I just confuse everybody more, lol :)

