2021-03-22 11:49:07 +00:00
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "utf-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < meta name = "generator" content = "rustdoc" > < meta name = "description" content = "Source of the Rust file `actix-web-httpauth/src/extractors/mod.rs`." > < meta name = "keywords" content = "rust, rustlang, rust-lang" > < title > mod.rs - source< / title > < link rel = "stylesheet" type = "text/css" href = "../../../normalize.css" > < link rel = "stylesheet" type = "text/css" href = "../../../rustdoc.css" id = "mainThemeStyle" > < link rel = "stylesheet" type = "text/css" href = "../../../light.css" id = "themeStyle" > < link rel = "stylesheet" type = "text/css" href = "../../../dark.css" disabled > < link rel = "stylesheet" type = "text/css" href = "../../../ayu.css" disabled > < script id = "default-settings" > < / script > < script src = "../../../storage.js" > < / script > < script src = "../../../crates.js" > < / script > < noscript > < link rel = "stylesheet" href = "../../../noscript.css" > < / noscript > < link rel = "icon" type = "image/svg+xml" href = "../../../favicon.svg" >
< link rel = "alternate icon" type = "image/png" href = "../../../favicon-16x16.png" >
2021-04-02 10:47:22 +00:00
< link rel = "alternate icon" type = "image/png" href = "../../../favicon-32x32.png" > < style type = "text/css" > # crate-search { background-image : url ( "../../../down-arrow.svg" ) ; } < / style > < / head > < body class = "rustdoc source" > <!-- [if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif] --> < nav class = "sidebar" > < div class = "sidebar-menu" role = "button" > ☰ < / div > < a href = '../../../actix_web_httpauth/index.html' > < div class = 'logo-container rust-logo' > < img src = '../../../rust-logo.png' alt = 'logo' > < / div > < / a > < / nav > < div class = "theme-picker" > < button id = "theme-picker" aria-label = "Pick another theme!" aria-haspopup = "menu" > < img src = "../../../brush.svg" width = "18" height = "18" alt = "Pick another theme!" > < / button > < div id = "theme-choices" role = "menu" > < / div > < / div > < nav class = "sub" > < form class = "search-form" > < div class = "search-container" > < div > < select id = "crate-search" > < option value = "All crates" > All crates< / option > < / select > < input class = "search-input" name = "search" disabled autocomplete = "off" spellcheck = "false" placeholder = "Click or press ‘ S’ to search, ‘ ?’ for more options…" type = "search" > < / div > < button type = "button" class = "help-button" > ?< / button >
2021-03-22 11:49:07 +00:00
< a id = "settings-menu" href = "../../../settings.html" > < img src = "../../../wheel.svg" width = "18" height = "18" alt = "Change settings" > < / a > < / div > < / form > < / nav > < section id = "main" class = "content" > < pre class = "line-numbers" > < span id = "1" > 1< / span >
< span id = "2" > 2< / span >
< span id = "3" > 3< / span >
< span id = "4" > 4< / span >
< span id = "5" > 5< / span >
< span id = "6" > 6< / span >
< span id = "7" > 7< / span >
< span id = "8" > 8< / span >
< span id = "9" > 9< / span >
< span id = "10" > 10< / span >
< span id = "11" > 11< / span >
< span id = "12" > 12< / span >
< span id = "13" > 13< / span >
< span id = "14" > 14< / span >
< span id = "15" > 15< / span >
< span id = "16" > 16< / span >
< span id = "17" > 17< / span >
< span id = "18" > 18< / span >
< span id = "19" > 19< / span >
< span id = "20" > 20< / span >
< span id = "21" > 21< / span >
< span id = "22" > 22< / span >
< span id = "23" > 23< / span >
< span id = "24" > 24< / span >
< span id = "25" > 25< / span >
< span id = "26" > 26< / span >
< span id = "27" > 27< / span >
< span id = "28" > 28< / span >
< span id = "29" > 29< / span >
< span id = "30" > 30< / span >
< span id = "31" > 31< / span >
< span id = "32" > 32< / span >
< span id = "33" > 33< / span >
< / pre > < div class = "example-wrap" > < pre class = "rust " >
< span class = "doccomment" > //! Type-safe authentication information extractors< / span >
2021-04-09 13:42:26 +00:00
< span class = "kw" > use< / span > < span class = "ident" > actix_web::dev::ServiceRequest< / span > ;
< span class = "kw" > use< / span > < span class = "ident" > actix_web::Error< / span > ;
< span class = "kw" > use< / span > < span class = "ident" > std::future::Future< / span > ;
2021-03-22 11:49:07 +00:00
< span class = "kw" > pub< / span > < span class = "kw" > mod< / span > < span class = "ident" > basic< / span > ;
< span class = "kw" > pub< / span > < span class = "kw" > mod< / span > < span class = "ident" > bearer< / span > ;
< span class = "kw" > mod< / span > < span class = "ident" > config< / span > ;
< span class = "kw" > mod< / span > < span class = "ident" > errors< / span > ;
2021-04-09 13:42:26 +00:00
< span class = "kw" > pub< / span > < span class = "kw" > use< / span > < span class = "self" > self< / span > < span class = "ident" > ::config::AuthExtractorConfig< / span > ;
< span class = "kw" > pub< / span > < span class = "kw" > use< / span > < span class = "self" > self< / span > < span class = "ident" > ::errors::AuthenticationError< / span > ;
2021-03-22 11:49:07 +00:00
< span class = "doccomment" > /// Trait implemented by types that can extract< / span >
< span class = "doccomment" > /// HTTP authentication scheme credentials from the request.< / span >
< span class = "doccomment" > ///< / span >
< span class = "doccomment" > /// It is very similar to actix' `FromRequest` trait,< / span >
< span class = "doccomment" > /// except it operates with a `ServiceRequest` struct instead,< / span >
< span class = "doccomment" > /// therefore it can be used in the middlewares.< / span >
< span class = "doccomment" > ///< / span >
< span class = "doccomment" > /// You will not need it unless you want to implement your own< / span >
< span class = "doccomment" > /// authentication scheme.< / span >
< span class = "kw" > pub< / span > < span class = "kw" > trait< / span > < span class = "ident" > AuthExtractor< / span > : < span class = "ident" > Sized< / span > {
< span class = "doccomment" > /// The associated error which can be returned.< / span >
< span class = "kw" > type< / span > < span class = "ident" > Error< / span > : < span class = "ident" > Into< / span > < span class = "op" > < < / span > < span class = "ident" > Error< / span > < span class = "op" > > < / span > ;
< span class = "doccomment" > /// Future that resolves into extracted credentials type.< / span >
2021-04-09 13:42:26 +00:00
< span class = "kw" > type< / span > < span class = "ident" > Future< / span > : < span class = "ident" > Future< / span > < span class = "op" > < < / span > < span class = "ident" > Output< / span > < span class = "op" > =< / span > < span class = "prelude-ty" > Result< / span > < span class = "op" > < < / span > < span class = "self" > Self< / span > , < span class = "self" > Self< / span > < span class = "ident" > ::Error< / span > < span class = "op" > > < / span > < span class = "op" > > < / span > ;
2021-03-22 11:49:07 +00:00
< span class = "doccomment" > /// Parse the authentication credentials from the actix' `ServiceRequest`.< / span >
2021-04-09 13:42:26 +00:00
< span class = "kw" > fn< / span > < span class = "ident" > from_service_request< / span > (< span class = "ident" > req< / span > : < span class = "kw-2" > & < / span > < span class = "ident" > ServiceRequest< / span > ) < span class = "op" > -< / span > < span class = "op" > > < / span > < span class = "self" > Self< / span > < span class = "ident" > ::Future< / span > ;
2021-03-22 11:49:07 +00:00
}
< / pre > < / div >
< / section > < section id = "search" class = "content hidden" > < / section > < section class = "footer" > < / section > < div id = "rustdoc-vars" data-root-path = "../../../" data-current-crate = "actix_web_httpauth" data-search-js = "../../../search-index.js" > < / div >
< script src = "../../../main.js" > < / script > < script src = "../../../source-script.js" > < / script > < script src = "../../../source-files.js" > < / script > < / body > < / html >