2

送信された各リクエストに対して認証プロセスを実行する方法。現在直面している問題は、リクエスト パラメータとして送信されるユーザー データにアクセスできないことです。ここに私が試したものがあります

(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 {})
    )
   )
)

ミドルウェアも追加します。しかし、どちらも機能しません..ユーザーパラメータにアクセスするためのアイデア..

ありがとう

4

2 に答える 2

0

これが私がやったことで、私の問題を解決します。

(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」に追加しました。完全に機能します。

于 2012-07-25T12:27:44.367 に答える
0

砂の

ラップパラメータを使用していますか?

.. (:use [ring.middleware params])

(def app (-> (handler/site main-routes) (wrap-base-url) (wrap-params)))

于 2012-07-09T19:17:15.813 に答える