Skip to content

Commit

Permalink
Implemented account linking functionality for deg#3.
Browse files Browse the repository at this point in the history
  • Loading branch information
pbzdyl committed Oct 2, 2017
1 parent b4a22aa commit 517e097
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions src/com/degel/re_frame_firebase/auth.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -17,29 +17,41 @@
:photo-url (.-photoURL firebase-user)
:email (-> firebase-user .-providerData first .-email)}))

(defn- set-user
[firebase-user]
(-> firebase-user
(user)
(core/set-current-user)))

(defn- init-auth []
(.onAuthStateChanged
(js/firebase.auth)
(fn auth-state-changed [firebase-user]
(core/set-current-user (user firebase-user)))
set-user
(core/default-error-handler))

(-> (js/firebase.auth)
(.getRedirectResult)
(.then (fn on-user-credential [user-credential]
(-> user-credential
(.-user)
(user)
(core/set-current-user))))
set-user)))
(.catch (core/default-error-handler))))

(def ^:private sign-in-fns
{:popup (memfn signInWithPopup auth-provider)
:redirect (memfn signInWithRedirect auth-provider)})

(defn- maybe-link-with-credential
[pending-credential user-credential]
(when (and pending-credential user-credential)
(when-let [firebase-user (.-user user-credential)]
(-> firebase-user
(.linkWithCredential pending-credential)
(.catch (core/default-error-handler))))))

(defn- oauth-sign-in
[auth-provider opts]
(let [{:keys [sign-in-method scopes custom-parameters]
(let [{:keys [sign-in-method scopes custom-parameters link-with-credential]
:or {sign-in-method :redirect}} opts]

(doseq [scope scopes]
Expand All @@ -51,6 +63,7 @@
(if-let [sign-in (sign-in-fns sign-in-method)]
(-> (js/firebase.auth)
(sign-in auth-provider)
(.then (partial maybe-link-with-credential link-with-credential))
(.catch (core/default-error-handler)))
(>evt [(core/default-error-handler)
(js/Error. (str "Unsupported sign-in-method: " sign-in-method ". Either :redirect or :popup are supported."))]))))
Expand Down

0 comments on commit 517e097

Please sign in to comment.