2016-05-06 2 views
1

Facebookのカスタム認証を使用して、ユーザーがアプリサービスにログインできるようにしています。私が働いていた次のコードを使用していAzureモバイルアプリは、ログインに成功しても401(Unauthorized)を返します。

:「InvokeApiAsync」

「要求を完了できませんでした(無許可)。Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException」を呼び出すとき残念ながら、私は次のエラーを取得していますNuGetパッケージの1.xxブランチでは、このエラーメッセージが表示された後に更新されます。

Newtonsoft.Json.Linq.JObject jToken = new Newtonsoft.Json.Linq.JObject(); 
jToken.Add("access_token", token); 

var user = await _mobileService.LoginAsync(MobileServiceAuthenticationProvider.Facebook, jToken); 

var result= await _mobileService.InvokeApiAsync<GetContactListRequest, GetContactListResponse>("GetContactList", new GetContactListRequest()); 

LoginAsync部の動作およびユーザ変数は、トークンをユーザに(_mobileService.CurrentUserも同様に行い)を含みます。私は「InvokeApiAsync呼び出したときに、それは私が不正なエラーを取得していることだ。

モバイルサービス

[Authorize] 
public class GetContactListController : ApiController 
{ 
    // POST api/CustomRegistration 
    public HttpResponseMessage Post(GetContactListRequest request) 
    { 
     try 
     { 
      return this.Request.CreateResponse(HttpStatusCode.OK, new GetContactListResponse()); 
     } 
     catch (Exception ex) 
     { 
      return this.Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message); 
     } 
    }  
} 

任意のポインタ?

+0

カスタム認証を使用していますか、または内蔵のFacebook認証を使用していますか?後者を使っているようです。アプリケーションログを有効にするとエラーが表示されますか? –

+0

私はカスタム認証を使用しています。ここでは(成功した)LoginAsyncコールで使用しているfacebookトークンを取得しています – Bosch571

答えて

1

は、モバイルアプリのバックエンドのアプリケーションログを有効にしてください(あなたがこれを行うことができますポータル)問題がプラットフォーム認証パイプラインにある場合は、そこに認証失敗の詳細が表示されます。それ以外の場合は、アプリケーションコード(クライアントまたはサーバー)にある可能性が高くなります。

フィドルrトレースは、問題の診断にも役立ちます。

+0

クライアントリクエストを記録するには、FiddlerをChrisが言ったように使用するか、 [https://github.com/Azure/azure-mobile-apps/wiki/Help,-my-app-isn't-working!](https://github.com/Azure/azure-mobile-apps)を参照してください。/wiki /ヘルプ、-my-app-isn't-working!)。 –

+1

クライアントロギングを有効にするには、[ヘルプ、私のアプリは動作していません!]を参照してください(https://github.com/Azure/azure-mobile-apps/wiki/Help,-my-app-isn't-working !)のMobile Apps wikiにあります。 –

関連する問題