pub async fn start_session(
        &mut self,
        client_id: &str,
        email: &str,
        email_addr: &EmailAddress,
        response_type: ResponseType,
        nonce: &str,
        signing_alg: SigningAlgorithm,
        ip: IpAddr,
    ) {
        assert!(self.session_id.is_empty());
        assert!(self.session_data.is_none());
        let return_params = self
            .return_params
            .as_ref()
            .expect("start_session called without return parameters");
        self.session_id = crypto::session_id(email_addr, client_id, &self.app.rng).await;
        self.session_data = Some(SessionData {
            original_ip: ip,
            return_params: return_params.clone(),
            email: email.to_owned(),
            email_addr: email_addr.clone(),
            response_type,
            nonce: nonce.to_owned(),
            signing_alg,
        });
    }
/// Start a session by filling out the common part.
Start a session by filling out the common part.
Start a session by filling out the common part .
pub async fn start_session(
        &mut self,
        client_id: &str,
        email: &str,
        email_addr: &EmailAddress,
        response_type: ResponseType,
        nonce: &str,
        signing_alg: SigningAlgorithm,
        ip: IpAddr,
    ) {
        assert!(self.session_id.is_empty());
        assert!(self.session_data.is_none());
        let return_params = self
            .return_params
            .as_ref()
            .expect("start_session called without return parameters");
        self.session_id = crypto::session_id(email_addr, client_id, &self.app.rng).await;
        self.session_data = Some(SessionData {
            original_ip: ip,
            return_params: return_params.clone(),
            email: email.to_owned(),
            email_addr: email_addr.clone(),
            response_type,
            nonce: nonce.to_owned(),
            signing_alg,
        });
    }
pub async fn start_session ( & mut self , client_id : & str , email : & str , email_addr : & EmailAddress , response_type : ResponseType , nonce : & str , signing_alg : SigningAlgorithm , ip : IpAddr , ) { assert ! ( self session_id is_empty ( ) ) ; assert ! ( self session_data is_none ( ) ) ; let return_params = self . return_params . as_ref ( ) . expect ( " " ) ; self . session_id = crypto :: session_id ( email_addr , client_id , & self . app . rng ) . await ; self . session_data = Some ( SessionData { original_ip : ip , return_params : return_params . clone ( ) , email : email . to_owned ( ) , email_addr : email_addr . clone ( ) , response_type , nonce : nonce . to_owned ( ) , signing_alg , } ) ; }
Start a session by filling out the common part.
Start a session by filling out the common part .
&mut self
client_id
&str
email
&str
email_addr
&EmailAddress
response_type
ResponseType
nonce
&str
signing_alg
SigningAlgorithm
ip
IpAddr
&mut self
client_id
&str
email
&str
email_addr
&EmailAddress
response_type
ResponseType
nonce
&str
signing_alg
SigningAlgorithm
ip
IpAddr