wip
This commit is contained in:
parent
786927ccbd
commit
a580138e0d
@ -18,9 +18,6 @@ newtype PlainPassword = PlainPassword Text deriving (Show, ToJSON, FromJSON, ToH
|
|||||||
newtype HashedPassword = HashedPassword {unHashed :: ByteString}
|
newtype HashedPassword = HashedPassword {unHashed :: ByteString}
|
||||||
data NoPassword = NoPassword
|
data NoPassword = NoPassword
|
||||||
|
|
||||||
newtype Email = Email { unEmail :: Text } deriving (Show, ToJSON, FromJSON, ToHttpApiData, FromHttpApiData)
|
|
||||||
|
|
||||||
newtype Username = Username { unUsername :: Text } deriving (Show, ToJSON, FromJSON, ToHttpApiData, FromHttpApiData)
|
|
||||||
|
|
||||||
instance SqlType HashedPassword where
|
instance SqlType HashedPassword where
|
||||||
mkLit = LCustom . LBlob . unHashed
|
mkLit = LCustom . LBlob . unHashed
|
||||||
|
@ -24,21 +24,8 @@ import Control.Lens (view)
|
|||||||
import Data.Generics.Product
|
import Data.Generics.Product
|
||||||
import Servant (err401)
|
import Servant (err401)
|
||||||
import Control.Monad.Logger
|
import Control.Monad.Logger
|
||||||
|
import Auth (SafeUser(..))
|
||||||
|
|
||||||
-- generic-lens can convert similar types to this
|
|
||||||
-- I'm trying out servant-auth-server which uses a jwt style login. IIRC anyone
|
|
||||||
-- can open the jwt token and view what's inside, you just can't modify it.
|
|
||||||
--
|
|
||||||
-- Is it a problem that a human readable username and email are visible?
|
|
||||||
data SafeUser = SafeUser { email :: Email
|
|
||||||
, username :: Username
|
|
||||||
, role :: Role }
|
|
||||||
deriving (Show, Generic)
|
|
||||||
|
|
||||||
instance ToJSON SafeUser where
|
|
||||||
instance FromJSON SafeUser where
|
|
||||||
instance ToJWT SafeUser where
|
|
||||||
instance FromJWT SafeUser where
|
|
||||||
|
|
||||||
type instance BasicAuthCfg = BasicAuthData -> IO (AuthResult SafeUser)
|
type instance BasicAuthCfg = BasicAuthData -> IO (AuthResult SafeUser)
|
||||||
|
|
||||||
|
@ -15,14 +15,27 @@ cabal-version: >=1.10
|
|||||||
library
|
library
|
||||||
exposed-modules: Configuration
|
exposed-modules: Configuration
|
||||||
, Data.Versioned
|
, Data.Versioned
|
||||||
|
, API
|
||||||
|
, API.Books
|
||||||
|
, API.Catalogue
|
||||||
|
, API.Channels
|
||||||
|
, API.Users
|
||||||
|
, Auth
|
||||||
-- other-extensions:
|
-- other-extensions:
|
||||||
build-depends: base >=4.10 && <4.11
|
build-depends: base >=4.10 && <4.11
|
||||||
|
, aeson
|
||||||
, classy-prelude
|
, classy-prelude
|
||||||
, dhall
|
, dhall
|
||||||
, foreign-store
|
, foreign-store
|
||||||
, generic-lens
|
, generic-lens
|
||||||
, lens
|
, lens
|
||||||
, mtl
|
, mtl
|
||||||
|
, servant
|
||||||
|
, servant-auth
|
||||||
|
, servant-auth-server
|
||||||
|
, servant-docs
|
||||||
|
, servant-lucid
|
||||||
|
, servant-multipart
|
||||||
, text
|
, text
|
||||||
, transformers
|
, transformers
|
||||||
hs-source-dirs: src
|
hs-source-dirs: src
|
||||||
@ -30,4 +43,6 @@ library
|
|||||||
, NoImplicitPrelude
|
, NoImplicitPrelude
|
||||||
, OverloadedStrings
|
, OverloadedStrings
|
||||||
, RecordWildCards
|
, RecordWildCards
|
||||||
|
, TypeOperators
|
||||||
|
, DataKinds
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
|
Loading…
Reference in New Issue
Block a user