2012-07-09 1 views
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 {}) 
    ) 
    ) 
) 

и я добавить middlware тоже. но ни один из них работает .. Любая идея, чтобы получить доступ Params пользователей ..

Благодаря

ответ

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 промежуточного слоя и добавить его в «Params» с именем ключа: jsondata .. работает отлично ..

0

Sandy

вы используете обруча PARAMS?

.. (: используйте [ring.middleware PARAMS])

(DEF приложение (-> (Обработчик/сайт основные-маршруты) (наматывается базовый URL) (наматывается PARAMS)))