File tree Expand file tree Collapse file tree 4 files changed +15
-14
lines changed Expand file tree Collapse file tree 4 files changed +15
-14
lines changed Original file line number Diff line number Diff line change @@ -7,21 +7,20 @@ edition = "2018"
77[dependencies ]
88actix-web = " 2.0.0"
99actix-rt = " 1.0.0"
10- actix-service = " 1.0.1 "
10+ actix-service = " 1.0.5 "
1111actix-cors = " 0.2.0"
1212log = " 0.4.8"
1313env_logger = " 0.7.1"
1414diesel_migrations = " 1.4.0"
1515serde = " 1.0.104"
1616serde_derive = " 1.0.104"
17- serde_json = " 1.0.44 "
17+ serde_json = " 1.0.48 "
1818dotenv = " 0.15.0"
19- futures = " 0.3.1 "
19+ futures = " 0.3.4 "
2020failure = " 0.1.6"
21- derive_more = " 0.99.2 "
22- jsonwebtoken = " 6.0.1 "
21+ derive_more = " 0.99.3 "
22+ jsonwebtoken = " 7.1.0 "
2323bcrypt = " 0.6.1"
24- time = " 0.2.1"
2524
2625[dependencies .diesel ]
2726version = " 1.4.3"
Original file line number Diff line number Diff line change @@ -23,7 +23,6 @@ extern crate derive_more;
2323extern crate jsonwebtoken;
2424extern crate uuid;
2525extern crate bcrypt;
26- extern crate time;
2726
2827mod api;
2928mod config;
Original file line number Diff line number Diff line change 11use crate :: models:: user:: LoginInfoDTO ;
2- use jsonwebtoken:: Header ;
3- use time:: PrimitiveDateTime ;
2+ use chrono:: Utc ;
3+ use jsonwebtoken:: {
4+ EncodingKey ,
5+ Header
6+ } ;
47
58pub static KEY : [ u8 ; 16 ] = * include_bytes ! ( "../secret.key" ) ;
6- static ONE_WEEK : i64 = 60 * 60 * 24 * 7 ;
9+ static ONE_WEEK : i64 = 60 * 60 * 24 * 7 ; // in seconds
710
811#[ derive( Serialize , Deserialize ) ]
912pub struct UserToken {
@@ -18,14 +21,14 @@ pub struct UserToken {
1821
1922impl UserToken {
2023 pub fn generate_token ( login : LoginInfoDTO ) -> String {
21- let now = PrimitiveDateTime :: now ( ) . timestamp ( ) ;
24+ let now = Utc :: now ( ) . timestamp_nanos ( ) / 1_000_000_000 ; // nanosecond -> second
2225 let payload = UserToken {
2326 iat : now,
2427 exp : now + ONE_WEEK ,
2528 user : login. username ,
2629 login_session : login. login_session ,
2730 } ;
2831
29- jsonwebtoken:: encode ( & Header :: default ( ) , & payload, & KEY ) . unwrap ( )
32+ jsonwebtoken:: encode ( & Header :: default ( ) , & payload, & EncodingKey :: from_secret ( & KEY ) ) . unwrap ( )
3033 }
3134}
Original file line number Diff line number Diff line change @@ -6,10 +6,10 @@ use crate::{
66 } ,
77} ;
88use actix_web:: web;
9- use jsonwebtoken:: { TokenData , Validation } ;
9+ use jsonwebtoken:: { DecodingKey , TokenData , Validation } ;
1010
1111pub fn decode_token ( token : String ) -> jsonwebtoken:: errors:: Result < TokenData < UserToken > > {
12- jsonwebtoken:: decode :: < UserToken > ( & token, & KEY , & Validation :: default ( ) )
12+ jsonwebtoken:: decode :: < UserToken > ( & token, & DecodingKey :: from_secret ( & KEY ) , & Validation :: default ( ) )
1313}
1414
1515pub fn verify_token ( token_data : & TokenData < UserToken > , pool : & web:: Data < Pool > ) -> Result < String , String > {
You can’t perform that action at this time.
0 commit comments