2015-09-24 37 views
1

我使用ASP.net的WebAPI身份Facebook登录,我有angularjs应用的ASP.NET Web API身份外部登录重定向

当我打电话

MainURL + 'api/Account/ExternalLogins?returnUrl=%2F&generateState=true' 

我不想回对Web API页面,而不是我想Facebook来我重定向到我的angularJS应用程序,所以我这样做:

[AllowAnonymous] 
    [Route("ExternalLogins")] 
    public IEnumerable<ExternalLoginViewModel> GetExternalLogins(string returnUrl, bool generateState = false) 
    { 
     IEnumerable<AuthenticationDescription> descriptions = Authentication.GetExternalAuthenticationTypes(); 
     List<ExternalLoginViewModel> logins = new List<ExternalLoginViewModel>(); 

     string state; 

     if (generateState) 
     { 
      const int strengthInBits = 256; 
      state = RandomOAuthStateGenerator.Generate(strengthInBits); 
     } 
     else 
     { 
      state = null; 
     } 

     foreach (AuthenticationDescription description in descriptions) 
     { 
      ExternalLoginViewModel login = new ExternalLoginViewModel 
      { 
       Name = description.Caption, 
       Url = Url.Route("ExternalLogin", new 
       { 
        provider = description.AuthenticationType, 
        response_type = "token", 
        client_id = Startup.PublicClientId, 
        redirect_uri = new Uri("http://localhost:6263/com.html").AbsoluteUri, 
        // redirect_uri = new Uri(Request.RequestUri, returnUrl).AbsoluteUri, 
        state = state 
       }), 
       State = state 
      }; 
      logins.Add(login); 
     } 

     return logins; 
    } 

REDIRECT_URI =新的URI( “http://localhost:6263/com.html”).AbsoluteUri,

但浏览器给我一个错误,从服务 enter image description here

的回应是:

/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=localhost%3A6263%2Fcom.html&state=j0y0wF0yhvA_tzqbJo0GijCecqfbNWT0vLQiXxcHDqM1 

回答

0

我敢肯定,这是晚了。看看你的网址,它有一个双斜杠(//)