I am trying to make an OAuth authentication request to GitHub. I get error when it tries to obtain an access_code from GitHub.
Error occured during request handling, status: 502 Bad Gateway Failed to connect to host: SSL is not supported
This is the code:
#[derive(Serialize, Deserialize)]
struct Body {
client_id: String,
client_secret: String,
code: String,
accept: String,
}
impl Body {
fn new(client_id: String, client_secret: String, code: String, accept: String) -> Self {
Body {
client_id,
client_secret,
code,
accept,
}
}
}
pub fn gh_redirect_callback(req: &HttpRequest<AppState>) -> Box<Future<Item = HttpResponse, Error = Error>> {
let session_code = String::new('session_code');
dotenv().ok();
let github_client_id = env::var("GITHUB_CLIENT_ID").expect("GITHUB_CLIENT_ID must be set.");
let github_client_secret = env::var("GITHUB_CLIENT_SECRET").expect("GITHUB_CLIENT_SECRET must be set.");
let json_body = Body::new(github_client_id, github_client_secret, session_code, String::from("json"));
client::post("https://github.com/login/oauth/access_token")
.json(json_body).unwrap()
.send()
.from_err()
.and_then(|res: ClientResponse| {
dbg!(res);
Ok(HttpResponse::Ok().body("inside future"))
})
.responder()
}
The callback URL in GitHub is set to http://127.0.0.1:8088/gh-redirect. Can you tell me what might be the issue.
Did you enable ssl feature for actix-web crate?
No.
Be sure to eanble one of the SSL features https://github.com/actix/actix-web/blob/master/Cargo.toml#L34-L44
It worked. Thanks.
Just to be clear, add this to cargo.toml:
actix-web = { version = "0.7.18", features = ["ssl"] }
error: linking with cc failed: exit code: 1
When I run example
= note: Undefined symbols for architecture x86_64:
"_SSLv23_method", referenced from:
openssl::ssl::SslMethod::tls::ha97595eb573d0136 in libopenssl-66169f4e5a0a9ec5.rlib(openssl-66169f4e5a0a9ec5.openssl.1o5pd6yu-cgu.1.rcgu.o)
"_SSL_load_error_strings", referenced from:
openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o)
"_CRYPTO_num_locks", referenced from:
openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o)
"_CRYPTO_set_id_callback", referenced from:
openssl_sys::init::set_id_callback::hf85f70c33bc0a289 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o)
"_CRYPTO_set_locking_callback", referenced from:
openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o)
"_OPENSSL_add_all_algorithms_noconf", referenced from:
openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o)
"_SSL_library_init", referenced from:
openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o)
"_SSLeay", referenced from:
openssl::version::number::hb0640a49a7a65ba1 in libopenssl-66169f4e5a0a9ec5.rlib(openssl-66169f4e5a0a9ec5.openssl.1o5pd6yu-cgu.15.rcgu.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What should I do?
OS: macOS 10.14
Looks like it is related to xcode. https://stackoverflow.com/questions/18408531/xcode-build-failure-undefined-symbols-for-architecture-x86-64
I delete the openssl 1.1 and it works now, thanks!
error: linking with
ccfailed: exit code: 1
When I run example= note: Undefined symbols for architecture x86_64: "_SSLv23_method", referenced from: openssl::ssl::SslMethod::tls::ha97595eb573d0136 in libopenssl-66169f4e5a0a9ec5.rlib(openssl-66169f4e5a0a9ec5.openssl.1o5pd6yu-cgu.1.rcgu.o) "_SSL_load_error_strings", referenced from: openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o) "_CRYPTO_num_locks", referenced from: openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o) "_CRYPTO_set_id_callback", referenced from: openssl_sys::init::set_id_callback::hf85f70c33bc0a289 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o) "_CRYPTO_set_locking_callback", referenced from: openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o) "_OPENSSL_add_all_algorithms_noconf", referenced from: openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o) "_SSL_library_init", referenced from: openssl_sys::init::_$u7b$$u7b$closure$u7d$$u7d$::ha3c054e43f537b46 in libopenssl_sys-19a6b0094a10f644.rlib(openssl_sys-19a6b0094a10f644.openssl_sys.3vwedubj-cgu.9.rcgu.o) "_SSLeay", referenced from: openssl::version::number::hb0640a49a7a65ba1 in libopenssl-66169f4e5a0a9ec5.rlib(openssl-66169f4e5a0a9ec5.openssl.1o5pd6yu-cgu.15.rcgu.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)What should I do?
OS: macOS 10.14
I delete the openssl 1.1 and it works now. thanks
Tip: In v2.0.0 the feature is called openssl.
# Cargo.toml
actix-web = { version = "2.0.0", features = ["openssl"] }
Most helpful comment
Tip: In v2.0.0 the feature is called
openssl.