示例#1
0
string AuthCallback::GetToken(shared_ptr<AuthenticationParameters>& ap)
{
  try
  {
    if (redirectUrl_.empty()) {
      throw rmscore::exceptions::RMSInvalidArgumentException(
              "redirect Url is empty");
    }

    if (clientId_.empty()) {
      throw rmscore::exceptions::RMSInvalidArgumentException("client Id is empty");
    }

    AuthenticationContext authContext(
      ap->Authority(), AuthorityValidationType::False, FileCachePtr);

    auto result = authContext.acquireToken(ap->Resource(),
                                           clientId_,
                                           redirectUrl_,
                                           PromptBehavior::Auto,
                                           ap->UserId());
    return result->accessToken();
  }
  catch (const rmsauth::Exception& /*ex*/)
  {
    // out logs
    throw;
  }
}
string AuthCallback::GetToken(shared_ptr<AuthenticationParameters>& ap) {
  string redirect =
    ap->Scope().empty() ? redirectUrl_.toStdString() : ap->Scope();

  try
  {
    if (redirect.empty()) {
      throw rmscore::exceptions::RMSInvalidArgumentException(
              "redirect Url is empty");
    }

    if (clientId_.isEmpty()) {
      throw rmscore::exceptions::RMSInvalidArgumentException("client Id is empty");
    }

    AuthenticationContext authContext(
      ap->Authority(), AuthorityValidationType::False, FileCachePtr);

    auto result = authContext.acquireToken(ap->Resource(),
                                           clientId_.toStdString(), redirect,
                                           PromptBehavior::Auto,
                                           ap->UserId());
    return result->accessToken();
  }
  catch (const rmsauth::Exception& ex)
  {
    qDebug() << "!!!!! Auth error: " << ex.error().c_str();
    throw;
  }
  return "";
}