actix-jwt-auth-middleware icon indicating copy to clipboard operation
actix-jwt-auth-middleware copied to clipboard

jwt_compact::traits::Algorithm is not implemented for Ed25519

Open supchuck opened this issue 1 year ago • 10 comments

I am currently receiving the error mentioned above when I try to compile code utilizing a TokenSigner, however did not receive any such error when using a CookieSigner. This only began after recently updating to version 0.3.0. My code is as follows:

let token_signer = TokenSigner::<UserJWT, _>::new()
        .signing_key(key_pair.sk.clone())
        .access_token_name("user_access_token")
        //Token's lifespan is 2 hours, then requires reauthentication
        .refresh_token_lifetime(chrono::Duration::minutes(120))
        .algorithm(Ed25519)
        .build()
        .unwrap();

The full error output is as follows (this output is also produced if I copy and paste the example code on docs.rs for a TokenSigner):

error[E0277]: the trait bound `Ed25519: jwt_compact::traits::Algorithm` is not satisfied
   --> src/main.rs:157:24
    |
157 |     let token_signer = TokenSigner::<UserJWT, _>::new()
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `jwt_compact::traits::Algorithm` is not implemented for `Ed25519`
    |
    = help: the following other types implement trait `jwt_compact::traits::Algorithm`:
              jwt_compact::alg::StrongAlg<T>
              jwt_compact::alg::hmacs::Hs256
              jwt_compact::alg::hmacs::Hs384
              jwt_compact::alg::hmacs::Hs512
              jwt_compact::traits::Renamed<A>
note: required by a bound in `TokenSigner::<Claims, Algorithm>::new`
   --> /home/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-jwt-auth-middleware-0.3.0/src/token_signer.rs:129:16
    |
129 |     Algorithm: jwt_compact::Algorithm + Clone,
    |                ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `TokenSigner::<Claims, Algorithm>::new`

error[E0277]: the trait bound `Ed25519: jwt_compact::traits::Algorithm` is not satisfied
   --> src/main.rs:157:24
    |
157 |     let token_signer = TokenSigner::<UserJWT, _>::new()
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `jwt_compact::traits::Algorithm` is not implemented for `Ed25519`
    |
    = help: the following other types implement trait `jwt_compact::traits::Algorithm`:
              jwt_compact::alg::StrongAlg<T>
              jwt_compact::alg::hmacs::Hs256
              jwt_compact::alg::hmacs::Hs384
              jwt_compact::alg::hmacs::Hs512
              jwt_compact::traits::Renamed<A>
note: required by a bound in `TokenSigner`
   --> /home/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-jwt-auth-middleware-0.3.0/src/token_signer.rs:57:11
    |
57  |     Algo: Algorithm,
    |           ^^^^^^^^^ required by this bound in `TokenSigner`

error[E0277]: the trait bound `Ed25519: jwt_compact::traits::Algorithm` is not satisfied
   --> src/main.rs:158:10
    |
158 |         .signing_key(key_pair.sk.clone())
    |          ^^^^^^^^^^^ the trait `jwt_compact::traits::Algorithm` is not implemented for `Ed25519`
    |
    = help: the following other types implement trait `jwt_compact::traits::Algorithm`:
              jwt_compact::alg::StrongAlg<T>
              jwt_compact::alg::hmacs::Hs256
              jwt_compact::alg::hmacs::Hs384
              jwt_compact::alg::hmacs::Hs512
              jwt_compact::traits::Renamed<A>
note: required by a bound in `TokenSignerBuilder::<Claims, Algo>::signing_key`
   --> /home/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-jwt-auth-middleware-0.3.0/src/token_signer.rs:57:11
    |
57  |     Algo: Algorithm,
    |           ^^^^^^^^^ required by this bound in `TokenSignerBuilder::<Claims, Algo>::signing_key`

error[E0277]: the trait bound `Ed25519: jwt_compact::traits::Algorithm` is not satisfied
   --> src/main.rs:159:10
    |
159 |         .access_token_name("user_access_token")
    |          ^^^^^^^^^^^^^^^^^ the trait `jwt_compact::traits::Algorithm` is not implemented for `Ed25519`
    |
    = help: the following other types implement trait `jwt_compact::traits::Algorithm`:
              jwt_compact::alg::StrongAlg<T>
              jwt_compact::alg::hmacs::Hs256
              jwt_compact::alg::hmacs::Hs384
              jwt_compact::alg::hmacs::Hs512
              jwt_compact::traits::Renamed<A>
note: required by a bound in `TokenSignerBuilder::<Claims, Algo>::access_token_name`
   --> /home/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-jwt-auth-middleware-0.3.0/src/token_signer.rs:57:11
    |
57  |     Algo: Algorithm,
    |           ^^^^^^^^^ required by this bound in `TokenSignerBuilder::<Claims, Algo>::access_token_name`

error[E0277]: the trait bound `Ed25519: jwt_compact::traits::Algorithm` is not satisfied
   --> src/main.rs:161:10
    |
161 |         .refresh_token_lifetime(chrono::Duration::minutes(120))
    |          ^^^^^^^^^^^^^^^^^^^^^^ the trait `jwt_compact::traits::Algorithm` is not implemented for `Ed25519`
    |
    = help: the following other types implement trait `jwt_compact::traits::Algorithm`:
              jwt_compact::alg::StrongAlg<T>
              jwt_compact::alg::hmacs::Hs256
              jwt_compact::alg::hmacs::Hs384
              jwt_compact::alg::hmacs::Hs512
              jwt_compact::traits::Renamed<A>
note: required by a bound in `TokenSignerBuilder::<Claims, Algo>::refresh_token_lifetime`
   --> /home//.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-jwt-auth-middleware-0.3.0/src/token_signer.rs:57:11
    |
57  |     Algo: Algorithm,
    |           ^^^^^^^^^ required by this bound in `TokenSignerBuilder::<Claims, Algo>::refresh_token_lifetime`

error[E0277]: the trait bound `Ed25519: jwt_compact::traits::Algorithm` is not satisfied
   --> src/main.rs:162:10
    |
162 |         .algorithm(Ed25519)
    |          ^^^^^^^^^ the trait `jwt_compact::traits::Algorithm` is not implemented for `Ed25519`
    |
    = help: the following other types implement trait `jwt_compact::traits::Algorithm`:
              jwt_compact::alg::StrongAlg<T>
              jwt_compact::alg::hmacs::Hs256
              jwt_compact::alg::hmacs::Hs384
              jwt_compact::alg::hmacs::Hs512
              jwt_compact::traits::Renamed<A>
note: required by a bound in `TokenSignerBuilder::<Claims, Algo>::algorithm`
   --> /home/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-jwt-auth-middleware-0.3.0/src/token_signer.rs:57:11
    |
57  |     Algo: Algorithm,
    |           ^^^^^^^^^ required by this bound in `TokenSignerBuilder::<Claims, Algo>::algorithm`

error[E0599]: the method `build` exists for struct `TokenSignerBuilder<UserJWT, Ed25519>`, but its trait bounds were not satisfied
   --> src/main.rs:163:10
    |
157 |       let token_signer = TokenSigner::<UserJWT, _>::new()
    |  ________________________-
158 | |         .signing_key(key_pair.sk.clone())
159 | |         .access_token_name("user_access_token")
160 | |         //Token's lifespan is 2 hours, then requires reauthentication
161 | |         .refresh_token_lifetime(chrono::Duration::minutes(120))
162 | |         .algorithm(Ed25519)
163 | |         .build()
    | |         -^^^^^ method cannot be called on `TokenSignerBuilder<UserJWT, Ed25519>` due to unsatisfied trait bounds
    | |_________|
    | 
    |
   ::: /home/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/jwt-compact-0.8.0-beta.1/src/alg/eddsa_compact.rs:36:1
    |
36  |   pub struct Ed25519;
    |   ------------------ doesn't satisfy `Ed25519: jwt_compact::traits::Algorithm`
    |
    = note: the following trait bounds were not satisfied:
            `Ed25519: jwt_compact::traits::Algorithm`

supchuck avatar Jul 09 '23 04:07 supchuck