summaryrefslogtreecommitdiffstats
path: root/src/server/Api
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Api')
-rw-r--r--src/server/Api/Internal/Account/CreateGithubSessionRoute.cs17
-rw-r--r--src/server/Api/Internal/OAuthCallbackRoute.cs18
2 files changed, 35 insertions, 0 deletions
diff --git a/src/server/Api/Internal/Account/CreateGithubSessionRoute.cs b/src/server/Api/Internal/Account/CreateGithubSessionRoute.cs
new file mode 100644
index 0000000..21cfead
--- /dev/null
+++ b/src/server/Api/Internal/Account/CreateGithubSessionRoute.cs
@@ -0,0 +1,17 @@
+using AspNet.Security.OAuth.GitHub;
+
+namespace IOL.BookmarkThing.Server.Api.Internal.Account;
+
+public class CreateGithubSessionRoute : RouteBaseInternalSync.WithoutRequest.WithActionResult
+{
+ [AllowAnonymous]
+ [ApiVersionNeutral]
+ [ApiExplorerSettings(IgnoreApi = true)]
+ [HttpGet("~/v{version:apiVersion}/account/create-github-session")]
+ public override ActionResult Handle() {
+ return Challenge(new AuthenticationProperties {
+ RedirectUri = "/oauth-cb",
+ },
+ GitHubAuthenticationDefaults.AuthenticationScheme);
+ }
+}
diff --git a/src/server/Api/Internal/OAuthCallbackRoute.cs b/src/server/Api/Internal/OAuthCallbackRoute.cs
new file mode 100644
index 0000000..156ff11
--- /dev/null
+++ b/src/server/Api/Internal/OAuthCallbackRoute.cs
@@ -0,0 +1,18 @@
+namespace IOL.BookmarkThing.Server.Api.Internal;
+
+public class OAuthCallbackRoute : RouteBaseInternalSync.WithoutRequest.WithActionResult
+{
+ private readonly IConfiguration _configuration;
+
+ public OAuthCallbackRoute(IConfiguration configuration) {
+ _configuration = configuration;
+ }
+
+ [AllowAnonymous]
+ [ApiVersionNeutral]
+ [ApiExplorerSettings(IgnoreApi = true)]
+ [HttpGet("~/oauth-cb")]
+ public override ActionResult Handle() {
+ return Redirect(_configuration.GetValue<string>("FRONTEND_CANONICAL_URL"));
+ }
+}