對於我的問題,一個簡單而簡單的答案是我在尋找url。
https://localhost:44333/connect/authorize?client_id=implicitclient&response_type=token&scope=read&redirect_uri=http://localhost:8088/login/auth&nonce=random_nonce&acr_values=idp%3AFacebook&response_mode=form_post
閱讀資料,如果你想獲得這個網址
經過大量的命中& &試驗研究工作的更好的主意,我已經得到了這個解決方案。那麼我認爲這個問題的根本原因是突然的新技術(Owin,Katana,OAuth,IdentityServer,IdentityManagement,MembershipReboot,Owin Facebook)以及很少的時間來理解它們。
我會建議人們,無論誰是同樣的情況我再先了解一下OAuth的想法。我發現下面的鏈接是一個簡短而好的鏈接。
http://tutorials.jenkov.com/oauth2/index.html
在此之後我才知道,在我們的場景中,我們處理的是兩個應用程序,因此兩個認證。
用於連接用戶到Facebook。我們在developers.facebook.com上創建了一個應用程序
用於將用戶連接到IdentityServer。我們在AuthenticationServices項目的Clients.cs文件中創建了一個客戶端。
所以現在這裏是最終的解決方案。 localhost:44333其中AuthenticationService正在運行 locahost:8088其中FrontEnd服務正在運行哪個正在調用AuthenticationService。
1.創建AuthenticationServices客戶端應用程序,如下
new Client
{
ClientName = "Implicit Clients",
Enabled = true,
ClientId = "implicitclient",
ClientSecrets = new List<ClientSecret>{
new ClientSecret("secret".Sha256())
},
Flow = Flows.Implicit,
RequireConsent = true,
AllowRememberConsent = true,
RedirectUris = new List<string>
{
"http://localhost:8088/login/auth" //This should be redirect url you want to hit after your app(not facebook app) redirects.
},
ScopeRestrictions = new List<string>
{
Constants.StandardScopes.OpenId,
Constants.StandardScopes.Profile,
Constants.StandardScopes.Email,
"read",
"write",
},
//SubjectType = SubjectTypes.Global,
AccessTokenType = AccessTokenType.Jwt,
IdentityTokenLifetime = 360,
AccessTokenLifetime = 360,
},
2創建授權URL如下
var client = new OAuth2Client(new Uri("https://localhost:44333/core/connect/authorize"));
var startUrl = client.CreateAuthorizeUrl(
clientId: "implicitclient",
responseType: "token",
scope: "read",
redirectUri: "http://localhost:8088/login/auth",
nonce: "random_nonce",
responseMode: "form_post",
acrValues: "idp:Facebook");
Facebook的應用程序成功授權後將默認重定向到http://localhost:44333/signin-facebook。所以不需要在那裏做任何改變。
最後在http://localhost:8088/login/auth您將在成功驗證後獲得access_token(+其他參數)。在此之後,您可以使用此令牌訪問資源服務器中的資源。
有人可以解釋一下,爲什麼我的問題是downvoted? –