mirror of
https://github.com/penpot/penpot.git
synced 2025-06-11 05:41:39 +02:00
31 lines
1.1 KiB
Clojure
31 lines
1.1 KiB
Clojure
;; This Source Code Form is subject to the terms of the Mozilla Public
|
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
;;
|
|
;; This Source Code Form is "Incompatible With Secondary Licenses", as
|
|
;; defined by the Mozilla Public License, v. 2.0.
|
|
;;
|
|
;; Copyright (c) 2020 UXBOX Labs SL
|
|
|
|
(ns app.http.auth
|
|
(:require
|
|
[app.http.session :as session]))
|
|
|
|
(defn login-handler
|
|
[{:keys [session rpc] :as cfg} request]
|
|
(let [data (:params request)
|
|
uagent (get-in request [:headers "user-agent"])
|
|
method (get-in rpc [:methods :mutation :login])
|
|
profile (method data)
|
|
id (session/create! session {:profile-id (:id profile)
|
|
:user-agent uagent})]
|
|
{:status 200
|
|
:cookies (session/cookies session {:value id})
|
|
:body profile}))
|
|
|
|
(defn logout-handler
|
|
[{:keys [session] :as cfg} request]
|
|
(session/delete! cfg request)
|
|
{:status 204
|
|
:cookies (session/cookies session {:value "" :max-age -1})
|
|
:body ""})
|