| Crates.io | google-signin |
| lib.rs | google-signin |
| version | 0.3.0 |
| created_at | 2018-04-06 00:43:40.660183+00 |
| updated_at | 2018-05-18 18:16:19.319709+00 |
| description | API bindings for Google Sign-In |
| homepage | |
| repository | https://github.com/wyyerd/google-signin |
| max_upload_size | |
| id | 59180 |
| size | 24,350 |
Rust API bindings for Google Sign-in.
See authenticating with a backend server.
Put this in your Cargo.toml:
[dependencies]
google-signin = "0.3.0"
And this in your crate root:
extern crate google_signin;
And then you can verify a google JSON web token
use google_signin;
let mut client = google_signin::Client::new();
client.audiences.push(YOUR_CLIENT_ID); // required
client.hosted_domains.push(YOUR_HOSTED_DOMAIN); // optional
// Let the crate handle everything for you
let id_info = client.verify(&data.token).expect("Expected token to be valid");
println!("Success! Signed-in as {}", id_info.sub);
// Inspect the ID before verifying it
let id_info = client.get_slow_unverified(&data.token).expect("Expected token to exist");
let ok = id_info.verify(&client).is_ok();
println!("Ok: {}, Info: {:?}", ok, id_info);
The verify function currently uses the
tokeninfo endpoint
which handles most of the validation logic, but introduces some latency.
If you are expecting high volumes of sign-ins: