使用auth0-angular自定义auth0-lock

时间:2016-01-26 23:02:37

标签: angularjs auth0

我正在尝试使用www.auth0.com和AngularJS的auth0-lock。 我能够在SDK中传递一些参数:https://auth0.com/docs/libraries/lock/customization#connections-array-

        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编写的,似乎我在传递数组或参数方面存在问题。 有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您想要使用connections参数发送数组:

connections: ['windows-live']

而不是像你一样的字符串:

connections: 'windows-live'

答案 1 :(得分:1)

您是否在仪表板中启用了社交? Enable Social

答案 2 :(得分: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));