mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
facebook: Use a random, OS-assigned port instead of hardcoded 8001.
This commit is contained in:
parent
03634e0149
commit
a7559787df
2 changed files with 8 additions and 4 deletions
|
@ -64,7 +64,7 @@ in their browser, where CSRF is a random token, and PORT is the HTTPS server's p
|
|||
This will redirect to Facebook, where the user must login and authorize Spotify, and
|
||||
finally make a GET request to
|
||||
`https://login.spotilocal.com:PORT/login/facebook_login_sso.json?csrf=CSRF&access_token=TOKEN`,
|
||||
where CSRF is the same string sent earlier, and TOKEN is the facebook authentication token.
|
||||
where PORT and CSRF are the same as sent earlier, and TOKEN is the facebook authentication token.
|
||||
|
||||
Since `login.spotilocal.com` resolves the 127.0.0.1, the request is received by the client.
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use hyper;
|
||||
use hyper::net::Openssl;
|
||||
use hyper::net::NetworkListener;
|
||||
use hyper::server::Request;
|
||||
use hyper::server::Response;
|
||||
use hyper::uri::RequestUri;
|
||||
|
@ -93,12 +94,15 @@ pub fn facebook_login() -> Result<Credentials, ()> {
|
|||
};
|
||||
|
||||
let ssl = spotilocal_ssl_context().unwrap();
|
||||
let mut server = hyper::Server::https("127.0.0.1:8001", ssl).unwrap().handle(handler).unwrap();
|
||||
|
||||
let mut listener = hyper::net::HttpsListener::new("127.0.0.1:0", ssl).unwrap();
|
||||
let port = listener.local_addr().unwrap().port();
|
||||
|
||||
let mut server = hyper::Server::new(listener).handle(handler).unwrap();
|
||||
|
||||
println!("Logging in using Facebook, please visit https://login.spotify.com/login-facebook-sso/?csrf={}&port={} in your browser.",
|
||||
csrf, 8001);
|
||||
csrf, port);
|
||||
|
||||
//a2c27234068bbe05d22c1b930b3bc2f5
|
||||
let token = rx.recv().unwrap();
|
||||
let user_id = facebook_get_me_id(&token).unwrap();
|
||||
let cred = Credentials {
|
||||
|
|
Loading…
Reference in a new issue