2016-01-26 138 views
0

我正在使用來自www.auth0.com和AngularJS的auth0-lock。 我能夠通過一些參數如在SDK:https://auth0.com/docs/libraries/lock/customization#connections-array-使用auth0-angular自定義auth0-lock

 auth.signin({ 
      disableSignupAction: true, 
      socialBigButtons: true, 
      //these lines don't work 
      //no changes (username, password appears) 
      //connection: 'windows-live' 
      //this line returns 'No valid connection found' 
      //connections: 'windows-live' 
      //this line returns 'No valid connection found' 
      //connections: ['windows-live'] 
      //this line doesn't change anything 
      //connection: ['windows-live'] 

     } 

,但我不能夠通過連接(從SDK非角版本)

lock.show({ 
connections: ['twitter', 'facebook', 'linkedin'] 
}); 

這兩個參數的連接或連接的別工作。

我的問題是,如果我不指定連接(連接)用戶名和密碼將出現。根據SDK,我需要對其進行硬編碼,以隱藏這些字段。 由於SDK是爲JS而不是AngularJS編寫的,因此我似乎遇到了傳遞數組或參數的問題。 任何想法?

回答

1

你想發送帶有連接參數數組:就像你有

connections: ['windows-live'] 

,而不是字符串:

connections: 'windows-live' 
+0

我沒有提到這一點,但它不能正常工作。 結果與:「無法找到有效連接」 我已更新問題。 –

1

是否啓用了社會在儀表板? Enable Social

0

該文檔似乎對此如此。如果您使用//cdn.auth0.com/js/lock-8.js,它應該在前面的響應中看到,並遵循示例https://github.com/auth0/auth0-angular/tree/master/examples

我與連接摔跤:&連接幾個小時試圖讓一些自定義連接工作。

作爲一個基地,您可以啓用Auth0社交服務提供商中的各種提供商,確保它們切換爲綠色。儘可能簡單地開始並從那裏展開。

auth.signin({ 
     scope: 'openid name email' 

的index.html

<script type="text/javascript" src="//cdn.auth0.com/js/lock-8.js"></script> 
<!--script src="//cdn.auth0.com/w2/auth0-6.7.js"></script--> 
<script type="text/javascript" src="https://cdn.auth0.com/w2/auth0-angular-4.js"></script> 
<script src="./lib/a0-angular-storage/dist/angular-storage.js"></script> 
<script src="./lib/angular-jwt/dist/angular-jwt.js"></script> 

登錄CTRL

.controller('LoginCtrl', 
    function onLoginSuccess(profile, token) { 
     console.log("login ok"); 
    } 

    function onLoginFailed() { 
     console.log("failed login"); 
    } 

    auth.signin({ 
     scope: 'openid name email' 
    }, onLoginSuccess, onLoginFailed); 
} 

配置塊

.config(function($stateProvider, $urlRouterProvider, authProvider, 
      jwtInterceptorProvider, $httpProvider) { 

authProvider.init({ 
    domain: '', 
    clientID: '', 
    loginState: 'login', 
    loginUrl: true 
}); 


    authProvider.on('loginSuccess', function($location, profilePromise, idToken, store) { 
     profilePromise.then(function(profile) { 
      console.log(JSON.stringify(profile));