aboutsummaryrefslogtreecommitdiff
path: root/zenserver/auth/authservice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/auth/authservice.cpp')
-rw-r--r--zenserver/auth/authservice.cpp26
1 files changed, 22 insertions, 4 deletions
diff --git a/zenserver/auth/authservice.cpp b/zenserver/auth/authservice.cpp
index 8200b9c9b..20ea252fa 100644
--- a/zenserver/auth/authservice.cpp
+++ b/zenserver/auth/authservice.cpp
@@ -1,7 +1,7 @@
// Copyright Epic Games, Inc. All Rights Reserved.
-#include <auth/authservice.h>
#include <auth/authmgr.h>
+#include <auth/authservice.h>
#include <zencore/compactbinarybuilder.h>
#include <zencore/string.h>
@@ -41,10 +41,28 @@ HttpAuthService::HttpAuthService(AuthMgr& AuthMgr) : m_AuthMgr(AuthMgr)
return ServerRequest.WriteResponse(HttpResponseCode::BadRequest, Response.Save());
}
- const std::string RefreshToken = TokenInfo["RefreshToken"].string_value();
- const std::string AccessToken = TokenInfo["AccessToken"].string_value();
+ const std::string IdentityToken = TokenInfo["IdentityToken"].string_value();
+ const std::string RefreshToken = TokenInfo["RefreshToken"].string_value();
+ const std::string AccessToken = TokenInfo["AccessToken"].string_value();
+
+ const bool Ok = m_AuthMgr.AddOpenIdToken(AuthMgr::AddOpenIdTokenParams{.ProviderName = "Okta"sv,
+ .IdentityToken = IdentityToken,
+ .RefreshToken = RefreshToken,
+ .AccessToken = AccessToken});
+
+ if (Ok)
+ {
+ ServerRequest.WriteResponse(Ok ? HttpResponseCode::OK : HttpResponseCode::BadRequest);
+ }
+ else
+ {
+ CbObjectWriter Response;
+ Response << "Result"sv << false;
+ Response << "Error"sv
+ << "Invalid token"sv;
- ServerRequest.WriteResponse(HttpResponseCode::OK);
+ ServerRequest.WriteResponse(HttpResponseCode::BadRequest, Response.Save());
+ }
},
HttpVerb::kPost);
}