LoginSignup
2
1

More than 5 years have passed since last update.

wai/warp でBasic認証をかけてみる

Posted at

Hello World!と表示するだけのとても簡単なWebアプリを書いてみます。

{-# LANGUAGE OverloadedStrings #-}

import Network.HTTP.Types
import Network.Wai
import qualified Network.Wai.Handler.Warp as Warp

app :: Application
app req res = res $ responseLBS status200 [] "Hello World!"

main :: IO ()
main = do
  putStrLn "Listening at http://localhost:3000/"
  Warp.run 3000 app

これにサクッとBasic認証をつけてみます。

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Network.HTTP.Types
import Network.Wai
import qualified Network.Wai.Handler.Warp as Warp
import Network.Wai.Middleware.HttpAuth

app :: Application
app req res = res $ responseLBS status200 [] "Hello World!"

authorize :: Middleware
authorize = basicAuth (\u p -> pure $ u == "lotz84" && p == "haskell") "Basic Auth Example"

main :: IO ()
main = do
  putStrLn "Listening at http://localhost:3000/"
  Warp.run 3000 $ authorize app

使ったのは wai-extraNetwork.Wai.Middleware.HttpAuthbasicAuth という関数です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1