[C#]google oauth JWT is not yet valid
如果伺服器與Google服務器的系統時間不同,當我們在驗證從Google收到的令牌時,可能會得到Exception「JWT is not yet valid」,此時大概有兩種解決方法,1.調整伺服器時間到世界標準時間;2.建立一個IClock Class,在ValidateAsync()方法中傳遞一個時鐘(因為實務上可能很難對伺服器做修改,所以還是乖乖改code吧)。
解方方法2 範例:
1.建立一個繼承IClock的類別
public class clock : IClock { public DateTime Now => DateTime.Now.AddMinutes(5); public DateTime UtcNow => DateTime.UtcNow.AddMinutes(5); }
2.在驗證Token的時候傳遞一個時鐘
// 驗證憑證 var settings = new GoogleJsonWebSignature.ValidationSettings() { Clock = new clock(), Audience = new List() { GoogleClientId } }; GoogleJsonWebSignature.Payload payload = GoogleJsonWebSignature.ValidateAsync(formCredential, settings).Result;
相關文章:
留言
張貼留言