On Mon, May 29, 2017 at 10:12 PM, Gabriel Ivașcu
<ivascu.gabrie...@gmail.com> wrote:
> Hi,
>
> I'm experimenting with Firefox Sync login via WebChannels [0] and for
> some reason I'm not receiving "fxaccounts:login" command (I am
> receiving "fxaccounts:loaded" and "fxaccounts:can_link_account"
> commands though).
>
> I wish to obtain the sync tokens (sessionToken, keyFetchToken,
> unwrapBKey etc.) but I cannot do that without the data sent through
> the login command.
>
> My current flow is:
>
> 1. Register a window event listener for WebChannelMessageToChrome events.
>
> 2. Load the Firefox iframe with the URL
> https://accounts.firefox.com/signin?service=sync&context=fx_desktop_v2
>
> 3. Receive message with the following fields:
>   * detail.id = "account_updates"
>   * detail.message.command = "fxaccounts:loaded"
>   * detail.message.messageId = null
>
> 4. Enter login credentials and submit them. Receive message with fields:
>   * detail.id = "account_updates"
>   * detail.message.command = "fxaccounts:can_link_account"
>   * detail.message.messageId = UNIX timestamp in milliseconds
>   * detail.message.data.email = the login email
>
> 5. Now I'm sending back a WebChannelMessageToContent message with the
> same detail fields as above, except the detail.message.data.email
> which is replaced with detail.message.data.ok = true.
>
> 6. Now I would expect to receive a message with command
> "fxaccounts:login" as instructed [1] but this is not happening, hence
> my question.
>
> The way I send my response to the server is by creating a
> window.customEvent passing the type WebChannelMessageToContent and the
> detail JSON mentioned above and calling window.dispatchEvent()
> afterwards.
>
> My guess is that I'm doing something wrong when sending the
> WebChannelMessageToContent response causing the server to not
> acknowledge it and not send back the login message, but I'm not sure
> what is it.

I managed to find and correct what I was doing wrong. My mistake was
that I was setting 'detail' as a string instead of a JSON object,
causing a "malformed WebChannelMessageToContent event" exception to be
raised on the server.

Everything is OK now.

> I would greatly appreciate some help regarding this matter.
>
> [0] 
> https://github.com/mozilla/fxa-content-server/blob/master/docs/relier-communication-protocols/fx-webchannel.md
> [1] 
> https://github.com/mozilla/fxa-content-server/blob/master/docs/relier-communication-protocols/fx-webchannel.md#command-order-for-a-signinsignup
>
> Thanks,
> Gabriel
_______________________________________________
Sync-dev mailing list
Sync-dev@mozilla.org
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to