2017-07-27 2 views
0

Je développe une application CRM pour mon entreprise. J'utilise la bibliothèque auth0 et essaye de m'authentifier à ADFS. Voici le code ci-dessous: Lorsque j'appuie sur le bouton Connexion, j'obtiens une erreur "ClientId manquant dans les paramètres". Je ne sais pas ce que je manque ici. toute aide est appréciée! J'ai mis mes informations d'identification lors de la création d'une nouvelle Auth0 et en l'enregistrant dans auth0.ClientId manquant dans l'erreur de paramètres

export default class Login extends Component { 
    constructor(props) { 
    super(props); 
    } 
    state = { 
    email: "", 
    password: "", 
    error: "", 
    loading: false, 
    loggedIn: null 
    }; 

    onButtonPress() { 
    const { email, password } = this.state; 
    this.setState({ 
     email: { email }, 
     password: { password }, 
     error: "", 
     loading: true, 
     loggedIn: false 
    }); 

    var auth0 = new Auth0(credentials); 

    var webAuth = new auth0.WebAuth({ 
     domain: "crm.auth0.com", 
     clientID: "6ZiWpn7DbTHVO2ktagE1h4" 
    }); 

    // auth0 
    //  .webAuth 
    //  .authorize({scope: 'openid email', audience: 'https://issicrm.auth0.com/userinfo'}) 
    //  .then(credentials => console.log(credentials)) 
    //  .catch(error => console.log(error)); 

    webAuth.client.login(
     { 
     clientID: "6ZiWpn7DbTHVzjtO071y1h4", 
     realm: "crm", 
     username: { email }, 
     password: { password }, 
     scope: "openid profile", 
     audience: "https://crm.auth0.com/userinfo" 
     }, 
     function(err, authResult) { 
     if (authResult) { 
      // Save the tokens from the authResult 
      // in local storage or a cookie 
      alert("logged in!!"); 
      console.log(authResult); 
      localStorage.setItem("access_token", authResult.accessToken); 
      localStorage.setItem("id_token", authResult.idToken); 
      this.onAuthSuccess(); 
     } else if (err) { 
      console.log(err); 
      this.onAuthFailed(); 
     } 
     } 
    ); 
    } 

    onAuthSuccess() { 
    this.setState({ 
     email: "", 
     password: "", 
     error: "", 
     loading: false, 
     loggedIn: true 
    }); 
    this.props.succesHandler(); 
    navigate("SalesOrderList"); 
    } 

    onAuthFailed() { 
    this.setState({ 
     error: "Authentication Failed", 
     loading: false, 
     loggedIn: false 
    }); 
    this.props.failureHandler(); 
    } 

    render() { 
    const { navigate } = this.props.navigation; 
    const { 
     form, 
     fieldStyles, 
     loginButtonArea, 
     errorMessage, 
     welcome, 
     container 
    } = styles; 

    return (
     <View style={styles.container}> 
     <Text style={styles.labelText}>Login to ISSI CRM</Text> 
     <MKTextField 
      text={this.state.email} 
      onTextChange={email => this.setState({ email })} 
      textInputStyle={fieldStyles} 
      placeholder={"Email..."} 
      tintColor={MKColor.Teal} 
     /> 
     <MKTextField 
      text={this.state.password} 
      onTextChange={password => this.setState({ password })} 
      textInputStyle={fieldStyles} 
      placeholder={"Password..."} 
      tintColor={MKColor.Teal} 
      password={true} 
     /> 
     <Text style={errorMessage}> 
      {this.state.error} 
     </Text> 
     <View style={loginButtonArea}> 
      <LoginButton onPress={this.onButtonPress.bind(this)} /> 
     </View> 
     </View> 
    ); 
    } 
} 

Répondre

0

La seule chose que je peux voir que pourrait être la cause est:

var auth0 = new Auth0(credentials); 

Essayez de commenter cette ligne et voir si vous obtenez l'erreur encore.

Je vérifie également pour vous assurer que vous avez collé le clientID entier du tableau de bord Auth0. Je suis assez sûr que le clientID manque environ 10 caractères ou plus. Les miens sont tous les 32 caractères.

Si cela ne fonctionne pas suivre ce qui est affiché ici explicitement:

https://auth0.com/docs/libraries/auth0js/v8

+0

J'ai pris les caractères de mon ClientID pour préserver la vie privée et à la sécurité de mon entreprise. Si je commente la ligne, l'application envoie une erreur "auth0 non défini". –

+0

Désolé. Je voulais dire supprimer les informations d'identification. –

+0

J'ai changé mon code afin qu'il reflète la documentation de react-native-auth0 pour la connexion avec passwordRealm. Je reçois maintenant un message d'erreur non autorisé. J'espère que c'est parce que nous n'avons pas encore configuré notre serveur ADFS. –