예제 #1
0
    def on_post(self, req: falcon.Request, resp: falcon.Response):
        validate_not_null(req.params, 'user')
        validate_not_null(req.params, 'password')

        token = self._controller.login(user=req.params.get("user", None),
                                       password=req.params.get(
                                           "password", None))
        if token:
            resp.set_cookie(FIELD_AUTH_TOKEN, token)
            raise falcon.HTTPSeeOther("/")
        else:
            raise ValidationError(title="Invalid login",
                                  description="Invalid username or password")
예제 #2
0
 def _write_response(self, bolt_resp: BoltResponse, resp: Response):
     resp.body = bolt_resp.body
     resp.status = str(bolt_resp.status)
     resp.set_headers(bolt_resp.first_headers_without_set_cookie())
     for cookie in bolt_resp.cookies():
         for name, c in cookie.items():
             expire_value = c.get("expires", None)
             expire = (datetime.strptime(expire_value,
                                         "%a, %d %b %Y %H:%M:%S %Z")
                       if expire_value else None)
             resp.set_cookie(
                 name=name,
                 value=c.value,
                 expires=expire,
                 max_age=c.get("max-age", None),
                 domain=c.get("domain", None),
                 path=c.get("path", None),
                 secure=True,
                 http_only=True,
             )