我正在尋找任何有關使用OWIN庫獲取refresh_token
的建議。OAUTH2(OPENID連接)+ MVC 5.刷新令牌問題
所有東西的作品甜蜜。但沒辦法,至少我不知道方式,檢索refresh_token
我試圖添加「access_offline」到初始請求,沒有什麼用處。我絕對做錯了什麼。
爲什麼我需要它? - 我試圖鏈接Google Glass + MVC5 + OWIN
的功能。
p.s.我會很感激任何使用Google.Api.Auth構建的工作示例鏈接。
謝謝。
我正在尋找任何有關使用OWIN庫獲取refresh_token
的建議。OAUTH2(OPENID連接)+ MVC 5.刷新令牌問題
所有東西的作品甜蜜。但沒辦法,至少我不知道方式,檢索refresh_token
我試圖添加「access_offline」到初始請求,沒有什麼用處。我絕對做錯了什麼。
爲什麼我需要它? - 我試圖鏈接Google Glass + MVC5 + OWIN
的功能。
p.s.我會很感激任何使用Google.Api.Auth構建的工作示例鏈接。
謝謝。
採取以下博文一看: http://peleyal.blogspot.com/2014/01/aspnet-mvc-with-google-openid-and-oauth.html
而且,您可以在https://github.com/peleyal/peleyal/tree/master/Google.Apis.Sample.MVC找到工作示例代碼。
謝謝,好帖子。一個問題:我無法理解將DataStore設置爲FileStore的設計理念。例如,你是否知道任何EF實現,就像你在博客中提到的那樣? –
我的下一個任務之一是有EF實施。請記住它是一個開源項目,所以如果你找到一個好的解決方案,請告訴我,我很樂意看看它並將其添加到存儲庫。現在我決定只實現.net 4.0,WP和WinRT的基本功能。我爲那個問題開了一個新問題 - https://code.google.com/p/google-api-dotnet-client/issues/detail?id=453 – peleyal
我明白了,謝謝。我已經嘗試過你的示例,並且仍然堅持獲得「訪問/刷新標記」。正如我可以看到例如FileDataStore,與url'http:// localhost:49244/Home/DriveAsync86747631'相同。無法弄清楚這是什麼。我絕對不能將它傳遞給Google MirrorApi for .net。有任何想法嗎? –
謝謝,有用的鏈接。不幸的是,我已經按照評論中的建議嘗試過了。沒有更改,也嘗試過3.0-alpha - 沒有運氣。 感覺有點失望,看到如katana owin這樣的大框架,沒有明顯的東西,如簡單而靈活的方式檢索密鑰。 –
您可以在這個帖子使用這樣的代碼
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
{
ClientId = "YOUR_CLIENT_ID",
ClientSecret = "YOUR_CLIENT_SECRET",
AccessType = "offline",
Provider = new GoogleOAuth2AuthenticationProvider()
{
OnAuthenticated = (context) =>
{
TimeSpan expiryDuration = context.ExpiresIn ?? new TimeSpan();
context.Identity.AddClaim(new Claim("urn:tokens:google:email", context.Email));
context.Identity.AddClaim(new Claim("urn:tokens:google:url", context.GivenName));
if (!String.IsNullOrEmpty(context.RefreshToken))
{
context.Identity.AddClaim(new Claim("urn:tokens:google:refreshtoken", context.RefreshToken));
}
context.Identity.AddClaim(new Claim("urn:tokens:google:accesstoken", context.AccessToken));
context.Identity.AddClaim(new Claim("urn:tokens:google:accesstokenexpiry", DateTime.Now.Add(expiryDuration).ToString()));
return Task.FromResult(0);
}
}
});
我知道這可能爲時已晚,但走alook:http://stackoverflow.com/questions/24894789/how-to-renew-該訪問令牌使用該刷新令牌/ 24972426#24972426 –