Skip to content

Commit cf5832e

Browse files
author
awb99
committed
websocket dep bump
1 parent 8e85ec2 commit cf5832e

File tree

6 files changed

+60
-5
lines changed

6 files changed

+60
-5
lines changed

deps.edn

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
; pink-gorilla dependencies
3232
org.pinkgorilla/modular {:mvn/version "0.0.40"}
3333
org.pinkgorilla/permission {:mvn/version "0.0.15"}
34-
org.pinkgorilla/websocket {:mvn/version "0.0.9"}}
34+
org.pinkgorilla/websocket {:mvn/version "0.0.12"}}
3535

3636
:aliases
3737
{:test {:extra-paths ["test"]

resources/ext/oauth2.edn

+7
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@
1818
"save-token" {:post modular.oauth2.handler/handler-oauth2-save-wrapped}
1919
["redirect/" :provider] modular.oauth2.handler/handler-oauth2-redirect-wrapped ; either client OR server side
2020
}}
21+
22+
;:clj-services {:name "oauth2"
23+
; :permission nil
24+
; :symbols [ta.studio.template/available-templates
25+
; ta.studio.template/get-options
26+
; ta.studio.subscription/subscribe-live
27+
; ta.studio.subscription/unsubscribe]}
2128
;
2229
}
2330

src/modular/oauth2.cljc

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
(:require
33
#?(:clj [taoensso.timbre :refer [debug info warn error]])
44
#?(:cljs [taoensso.timbre :refer-macros [debug info warn error]])
5-
#?(:clj [nano-id.core :refer [nano-id]])
6-
#?(:clj [modular.persist.protocol :refer [save loadr]])
75
#?(:clj [modular.oauth2.config :as config])
86
#?(:clj [modular.oauth2.local.handler])
97
#?(:cljs [modular.oauth2.request])

src/modular/oauth2/config.cljs

+2
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@
33
(def config
44
(atom {:name "Webly" ; shown in popup-window
55
}))
6+
7+
68
(defn app-name []
79
(:name @config))

src/modular/oauth2/local/function.clj

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
(ns modular.oauth2.local.function
2+
(:require
3+
[cheshire.core :as json]
4+
[taoensso.timbre :refer [debug debugf info infof error]]
5+
[clj-jwt.core :refer [str->jwt]]
6+
[modular.permission.user :refer [find-user-id-via-email]]
7+
[modular.permission.session :refer [set-user!]]
8+
[modular.oauth2.local.pass :refer [get-token]]
9+
[modular.oauth2.token.info :refer [tokens-summary-map]]))
10+
11+
; todo improve.
12+
; not used currently.
13+
14+
(defn login-local
15+
[{:as req :keys [event id ?data ring-req ?reply-fn send-fn uid]}]
16+
(debugf ":login/local %s" ?data)
17+
(let [{:keys [username password]} ?data
18+
login-result (get-token username password)]
19+
(info "login/local: " login-result " uid: " uid)
20+
(when-let [user (:user login-result)]
21+
(set-user! uid user))
22+
(send-response req :login/local login-result)))
23+
24+
(defmethod -event-msg-handler :login/oidc
25+
[{:as req :keys [event id ?data ring-req ?reply-fn send-fn uid]}]
26+
(debugf ":login/oidc %s" ?data)
27+
(let [{:keys [id-token]} ?data
28+
login-result (str->jwt id-token)
29+
email (get-in login-result [:claims :email])]
30+
(debug "login result oidc: " login-result " uid: " uid)
31+
(infof "login/oidc email: %s uid: %s" email uid)
32+
(if-let [user (find-user-id-via-email email)]
33+
(let [user (name user)]
34+
(set-user! uid user)
35+
(send-response req
36+
:login/local {:user user :token ?data}))
37+
(do
38+
(error "no user found for oidc login with email: " email)
39+
(send-response req
40+
:login/local {:error :user-not-found
41+
:error-message (str "No user found for [" email "].")})))))
42+
43+
(defmethod -event-msg-handler :tokens/summary
44+
[{:as req :keys [event id ?data ring-req ?reply-fn send-fn uid]}]
45+
(debugf ":tokens/summary %s" ?data)
46+
(let [{:keys [providers]} ?data
47+
summary (tokens-summary-map providers)]
48+
(infof ":tokens providers: %s summary: %s" providers summary)
49+
(send-response req :tokens/summary summary)))

src/modular/oauth2/local/handler.clj

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
[cheshire.core :as json]
44
[taoensso.timbre :refer [debug debugf info infof error]]
55
[clj-jwt.core :refer [str->jwt]]
6-
[modular.ws.core :refer [send-response]]
7-
[modular.ws.msg-handler :refer [-event-msg-handler]]
86
[modular.permission.user :refer [find-user-id-via-email]]
97
[modular.permission.websocket :refer [set-user!]]
8+
[modular.ws.msg-handler :refer [-event-msg-handler send-response]]
109
[modular.oauth2.local.pass :refer [get-token]]
1110
[modular.oauth2.token.info :refer [tokens-summary-map]]))
1211

0 commit comments

Comments
 (0)