diff options
| author | Per Larsson <[email protected]> | 2022-01-26 14:23:47 +0100 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2022-01-26 14:23:47 +0100 |
| commit | 0c52413f99819ac048ea72414148d289c3f43ab0 (patch) | |
| tree | 6edf7418c60cdd1c6c1e503074935005a653c698 /zenserver/auth/authservice.cpp | |
| parent | Added auth manager with support for OIDC providers. (diff) | |
| download | zen-0c52413f99819ac048ea72414148d289c3f43ab0.tar.xz zen-0c52413f99819ac048ea72414148d289c3f43ab0.zip | |
Add OpenID auth to auth mgr.
Diffstat (limited to 'zenserver/auth/authservice.cpp')
| -rw-r--r-- | zenserver/auth/authservice.cpp | 26 |
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); } |