Module actix_web::middleware::identity [] [src]

Request identity service for Actix applications.

IdentityService middleware can be used with different policies types to store identity information.

Bu default, only cookie identity policy is implemented. Other backend implementations can be added separately.

CookieIdentityPolicy uses cookies as identity storage.

To access current request identity RequestIdentity should be used. HttpRequest implements RequestIdentity trait.

use actix_web::middleware::identity::RequestIdentity;
use actix_web::middleware::identity::{CookieIdentityPolicy, IdentityService};
use actix_web::*;

fn index(req: HttpRequest) -> Result<String> {
    // access request identity
    if let Some(id) = req.identity() {
        Ok(format!("Welcome! {}", id))
    } else {
        Ok("Welcome Anonymous!".to_owned())
    }
}

fn login(mut req: HttpRequest) -> HttpResponse {
    req.remember("User1".to_owned()); // <- remember identity
    HttpResponse::Ok().finish()
}

fn logout(mut req: HttpRequest) -> HttpResponse {
    req.forget(); // <- remove identity
    HttpResponse::Ok().finish()
}

fn main() {
    let app = App::new().middleware(IdentityService::new(
        // <- create identity middleware
        CookieIdentityPolicy::new(&[0; 32])    // <- create cookie session backend
              .name("auth-cookie")
              .secure(false),
    ));
}

Structs

CookieIdentityPolicy

Use cookies for request identity storage.

IdentityService

Request identity middleware

Traits

Identity

An identity

IdentityPolicy

Identity policy definition.

RequestIdentity

The helper trait to obtain your identity from a request.