I'm looking through the auth0 sample project for using react, redux and auth0 for a login scenario here.  However I'm a bit confused about this particular example where we call this.props.doAuthentication()
// App.js
import { loginUser, fetchQuote, doAuthentication, fetchSecretQuote } from '../actions'
// add a constructor
constructor(props) {
    super(props)
    this.props.doAuthentication()
  }
Here is the action definition
// actions.js
...
const lock = new Auth0Lock('YOUR_CLIENT_ID', 'YOUR_CLIENT_DOMAIN');
export function login() {
  // display lock widget
  return dispatch => {
    lock.show();
  }
}
// Listen to authenticated event and get the profile of the user
export function doAuthentication() {
    return dispatch => {
      lock.on("authenticated", function(authResult) {
            lock.getProfile(authResult.idToken, function(error, profile) {
              if (error) {
                // handle error
                return dispatch(lockError(error))
              }
              localStorage.setItem('profile', JSON.stringify(profile))
              localStorage.setItem('id_token', authResult.idToken)
              return dispatch(lockSuccess(profile))
            });
      });
    }
}
...
I'm new to redux so maybe this is an obvious answer but
- Where is doAuthentication bound to the the props in App.js? Assuming that App.js is the top level root app component. 
- Doesn't doAuthentication generate a function that expects a dispatch argument? Why don't we do anything in the constructor with the returned function from doAuthentication()? If we don't assign the returned function to anything, does - this.props.doAuthenticationpersist anything or have any effects? Shouldn't it be something like- doAuthentication()(someDispatchFunction)Where does this dispatch function come from?
 
     
    