繁体   English   中英

如何在中间件或路由中添加身份验证?

[英]how add authentication in a middleware or pre-route?

如何对发送的每个请求执行身份验证过程。 我当前面临的问题是我无法访问作为请求参数发送的用户数据。 这是我尝试过的

(pre-route[:any "/mainpage/*"] {:keys[data]}
 (when (not(contains? data "userid"))
   //false response
  )
)

和中间件

(defn for-auth [handler]

  (fn [req]
    (if (contains? (:body (:params req)))
      (handler req)
      (handler (assoc req :body {})
    )
   )
)

我也添加了Middlware。 但是它们都不起作用。访问用户参数的任何想法。

谢谢

您是否在使用包装参数?

..(:使用[ring.middleware参数])

(def app(->(处理程序/站点主路由)(wrap-base-url)(wrap-params)))

好的,这是我所做的,它可以解决我的问题。

(pre-route [:any "/mainroute/*"] {{:keys [jsondata]}:params}
  (let [data (httputil/parse-json-data jsondata)]

  (cond
    (not (true? valid_req)) "false"
    (not (true? version_check)) "false"
    (not (true? user_valid)) "false"
    )
   )
  )

在这里,我已经在中间件中解析了我的json数据,并将其添加到键名为:jsondata的“ params”中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM