Pergunta

What I want

I want to allow in app SSO between the Live Connect SDK and a single Mobile Services instance that I'll use as the backend for 2 applications, WP8 & W8.1. I want to do this without affecting existing users of the WP8 app that is already in the Windows Phone Store. Both apps will use the Live SDK for OneDrive access.

Existing Situation

I have a Windows Phone 8 application that uses Azure Mobile Services and the Live Connect SDK and I have set up SSO by

  • Registering the app in the Live Connect Developer Center
  • Setting the redirect URL in the Developer Center to the Mobile Services URL (used in the Live Connect authentication token)
  • Copying the Client ID into my app and passing it to the Live Connect SDK methods when I log in
  • Retrieving the Live Connect authentication token after login and passing it to the Mobile services login

Issues

This is fine but now I want to start building a companion Windows 8.1 app that uses the same Mobile Services instance and SSO but I'm running into a difficulty as below:

  • The Live Connect Developer Center app associated with the Windows 8.1 app needs to have the Package SID and the only way I can find to do this is to use the 'associate my app with the Windows Store' tool within Visual Studio. This creates a new app in the Live Connect Developer Center with the Windows 8.1 Package SID. I can't find any way to add this Package SID to my existing Live Connect app (i.e. the one used for the WP8 app).
  • I believe I need to use a single, shared Live Connect Developer Center app, and associated Client ID, for both my WP8 and W8.1 apps as the authentication token from Live Connect (documentation here) seems to include the 'user identifier - uid' that is 'An identifier for the user, which is unique to the app'. To me this also implies that if I change the client ID (i.e. effectively a new app from Live Connect's point of view) then it will appear to mobile services as if a new user is signing in and all their old data will no longer be accessible to them.

I have researched other people doing SSO across both platforms and they seem to be using a single app in the Live Connect Developer Center but in all cases that I have seen so far they use the Windows 8.1 app, because this has the Package SID, and set it to 'Mobile or desktop client app'. I have started from the other direction with the phone app first and I can't find any information about this. I'm also trying to avoid testing this all out in a live app in case it does cause issues.

I have posted in both the Mobile Services and Live Connect forums about these issues but without a reply. (I can only provide 2 links, check my profile in the Mobile Services forum for my other post).

My Question

How can I add Azure Mobile Services SSO to my new Window 8.1 app without breaking my existing WP8 app?

Thanks.

Foi útil?

Solução 2

This question has been answered by Matthew Henderson in the Azure Mobile Services forum

The simplified version is you need to use one Live Connect app in the Developer Center (i.e. the same Client ID used by both the W8.1 & WP8 apps)

To do this you either need to either:

a) Start with the Windows 8.1 app which will register the SID with the Live Connect app (this is the documented and easiest path) and then re-use this Client ID in the Windows Phone 8 app

OR

b) If you already have a Windows Phone 8 app as I did then you can change the automatically created SID association in the Live Connect Developer Center to allow the Windows 8.1 app to use the existing Windows Phone 8 Client ID. This is a less well documented feature.

Outras dicas

It looks like this question may have already been covered here:

Live Connect Authentication Token for use on Azure Mobile Services (REST)

Hope that helps!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top