🎉 Add github auth provider.

This commit is contained in:
Vitaly Kornilov 2021-01-06 11:54:37 +01:00 committed by Alonso Torres
parent 63cc6aecaf
commit f3b5b07796
9 changed files with 62 additions and 3 deletions

View file

@ -113,6 +113,9 @@
(s/def ::gitlab-client-secret ::us/string)
(s/def ::gitlab-base-uri ::us/string)
(s/def ::github-client-id ::us/string)
(s/def ::github-client-secret ::us/string)
(s/def ::ldap-auth-host ::us/string)
(s/def ::ldap-auth-port ::us/integer)
(s/def ::ldap-bind-dn ::us/string)
@ -140,6 +143,8 @@
::google-client-secret
::gitlab-client-id
::gitlab-client-secret
::github-client-id
::github-client-secret
::gitlab-base-uri
::asserts-enabled
::redis-uri

View file

@ -90,7 +90,7 @@
(defn- create-router
[{:keys [session rpc google-auth gitlab-auth metrics ldap-auth storage svgparse] :as cfg}]
[{:keys [session rpc google-auth gitlab-auth github-auth metrics ldap-auth storage svgparse] :as cfg}]
(rr/router
[["/metrics" {:get (:handler metrics)}]
@ -115,7 +115,10 @@
["/google/callback" {:get (:callback-handler google-auth)}]
["/gitlab" {:post (:auth-handler gitlab-auth)}]
["/gitlab/callback" {:get (:callback-handler gitlab-auth)}]]
["/gitlab/callback" {:get (:callback-handler gitlab-auth)}]
["/github" {:post (:auth-handler github-auth)}]
["/github/callback" {:get (:callback-handler github-auth)}]]
["/login" {:post #(auth/login-handler cfg %)}]
["/logout" {:post #(auth/logout-handler cfg %)}]
@ -125,4 +128,3 @@
["/rpc" {:middleware [(:middleware session)]}
["/query/:type" {:get (:query-handler rpc)}]
["/mutation/:type" {:post (:mutation-handler rpc)}]]]]))

View file

@ -79,6 +79,7 @@
:metrics (ig/ref :app.metrics/metrics)
:google-auth (ig/ref :app.http.auth/google)
:gitlab-auth (ig/ref :app.http.auth/gitlab)
:github-auth (ig/ref :app.http.auth/github)
:ldap-auth (ig/ref :app.http.auth/ldap)
:svgparse (ig/ref :app.svgparse/handler)
:storage (ig/ref :app.storage/storage)}
@ -108,6 +109,14 @@
:client-id (:google-client-id config)
:client-secret (:google-client-secret config)}
:app.http.auth/github
{:rpc (ig/ref :app.rpc/rpc)
:session (ig/ref :app.http.session/session)
:tokens (ig/ref :app.tokens/tokens)
:public-uri (:public-uri config)
:client-id (:github-client-id config)
:client-secret (:github-client-secret config)}
:app.http.auth/gitlab
{:rpc (ig/ref :app.rpc/rpc)
:session (ig/ref :app.http.session/session)