[英]Java Spring MVC Auth0 SSO not getting tokens (no Spring Boot)
我正在嘗試啟動並運行 SSO。 因此,當我登錄不同的應用程序(在同一個 auth0 域上)並轉到我的應用程序的登錄頁面時,我希望我的應用程序自動登錄。
我設法運行了第一部分,並收到了來自 auth0 的授權碼。 但是當我嘗試檢索令牌時,它們都是空的。
我的 redirectuUri 和 clientSecret 是正確的,我假設之前返回的授權碼也是正確的。
似乎請求沒有返回任何令牌。 它們都是空的。
我從哪里開始找出問題所在? 謝謝!
public Tokens getTokens(final String authorizationCode, final String redirectUri) {
Validate.notNull(authorizationCode);
Validate.notNull(redirectUri);
System.out.println("Sending request with code to retrieve tokens.");
final Credentials creds = authenticationAPIClient
.token(authorizationCode, redirectUri)
.setClientSecret(clientSecret).execute();
return new Tokens(creds.getIdToken(), creds.getAccessToken(), creds.getType(), creds.getRefreshToken());
}
如果使用Auth0 Spring MVC庫(不是 Spring Security MVC) - 那么最好在回調控制器的句柄方法頂部放置斷點
然后,您可以逐步執行/介入 - 並檢查正在發生的事情。 此方法調用getTokens並委托給Auth0ClientImpl這是你的問題引用代碼塊。
檢查您的ClientId
、 ClientSecret
和Domain
是否都正確 - 如果您的代碼到達此方法 - 傳入的code
/ redirectURI
也是正確的。 也會從儀表板檢查 Auth0 日志,並確定是否記錄了任何成功的身份驗證事件。
最后,請您確認您使用的是哪個版本的auth0-java (maven POM 依賴項/gradle 依賴項) - 以及您引用的auth0-spring-mvc庫的哪個版本。
對於 SSO 特定示例 - 純 Spring 介於兩個凳子之間,因為我為純 Java 編寫了一個,另一個為 Spring Security MVC 編寫了一個 - 但是您應該通過研究這兩個示例對發生的事情有一個很好的了解:
特別要研究 JSP 頁面,因為這是 SSO 檢查和自動登錄邏輯所在的地方。 還要確保在 Auth0 租戶中定義的每個客戶端的設置上啟用 SSO。
免責聲明:我是上述庫的作者 - 如果您仍有問題並需要任何說明,請在下面給我留言。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.