docs: function (context, authenticationRequest, callback) {
              //
              var authProvider = this.getAuthenticationProviderForRequest(authenticationRequest);
  
              if (authProvider) {
                  flow()
                      .seq("authentication", function (cb) {
                          // authenticate
                          authProvider.authenticate(authenticationRequest, cb);
                      })
                      .seq(function (cb) {
                          // init authentication
                          this.vars.authentication.init(cb);
                      })
                      .exec(function (err, results) {
                          var authentication = results.authentication;
                          if (!err && authentication) {
                              context.user.addAuthentication(authentication);
                          }
                          // return authentication with user id
                          callback(err, authentication);
                      })
              } else {
                  callback(AuthenticationError.NO_PROVIDER_FOUND, null);
              }
          }