on master help sign in
Made cookie generation use library
commit5971ad4a3a43fc18e53f3505791b2abdf38cc6dd authoriko <ilyakooo0@gmail.com> dateSun 24 Feb 2019, 02:41 (8 years ago) parentacb44ce
1 file changed+12−5
denis/src/Server/Auth.hs+12−5
denis/src/Server/Auth.hs+12−5
@@ -23,6 +23,7 @@ import Server.App
2323import Data.User
2424import Data.ByteString
2525import qualified Data.ByteString.Char8 as C
26+import qualified Data.ByteString.Lazy.Char8 as L
2627import Data.Query
2728import Data.Binary (decode)
2829import Server.Error
@@ -34,15 +35,16 @@ import Servant.Server.Experimental.Auth
3435import Servant.API
3536import Network.Wai (Request, requestHeaders)
3637import Servant.Server
37−import Web.Cookie (parseCookies)
38+import Web.Cookie
3839import Data.Time.Clock
3940import Data.Monoid ((<>))
4041import Data.Text
4142import Data.Proxy
4243import qualified GHC.Generics as GHC
4344import Data.Aeson
45+import Data.Binary.Builder (toLazyByteString)
4446
45−type AuthenticationHandler = ReqBody '[JSON] AuthenticationCredits :> PostNoContent '[JSON, PlainText, FormUrlEncoded] (Headers '[Header "Set-Cookie" String] NoContent)
47+type AuthenticationHandler = ReqBody '[JSON] AuthenticationCredits :> Post '[JSON] (Headers '[Header "Set-Cookie" String] Int)
4648
4749data AuthenticationCredits = AuthenticationCredits {authenticationId :: UserId}
4850 deriving GHC.Generic
@@ -55,9 +57,14 @@ authenticate (AuthenticationCredits uId) = do
5557 conn <- ask
5658 expire <- liftIO $ fmap (addUTCTime (1 * 24 * 60 * 60)) getCurrentTime -- one days
5759 tId <- fmap userId . runQ invalidToken . getUser $ uId
58− let token = cookieTokenKeyString <> "=" <> show tId <> "; Expires=" <> show expire <> "; Domain=valera-denis.herokuapp.com" -- ; Secure" --; HttpOnly"
59− return $ addHeader token NoContent
60−
60+ let cookie = defaultSetCookie {
61+ setCookieName = cookieTokenKey,
62+ setCookieValue = C.pack $ show tId,
63+ setCookieExpires = Just expire,
64+ -- setCookieDomain = Just "127.0.0.1",
65+ setCookiePath = Just "/" }
66+ -- let token = cookieTokenKeyString <> "=" <> show tId <> "; Expires=" <> show expire <> "; Domain=127.0.0.1:2000; Path=/" -- ; Secure" --; HttpOnly"
67+ return $ addHeader (L.unpack . toLazyByteString . renderSetCookie $ cookie) 0
6168
6269
6370checkToken :: DBConnection -> ByteString -> Handler UserId