我正在尝试为我的Android应用配置 SSO身份验证。我在下面的链接中找到了一个教程
https://codelabs.developers.google.com/codelabs/appauth-android-codelab/#0
它显示了基于Google的 SSO 示例。
我正在为此目的使用 Okta ,我在 Okta 上创建了Application,然后复制了客户端ID,并将URL从其重定向到我的项目。
当我使用Google URL(身份验证和令牌终结点,客户端ID,重定向网址)时,它工作正常,即,它正在重定向到google登录页面,并在输入有效凭据后返回到我的应用程序。
在使用 Okta URL (身份验证和令牌终结点,客户端ID,重定向网址)时,它可以将我正确地重定向到Okta登录页面,但是在输入有效的凭据后,它不会返回我的应用程序,即登录页面没有关闭。
下面是我用于 SSO 登录的代码,
AuthorizationServiceConfiguration serviceConfiguration = new AuthorizationServiceConfiguration(
//Uri.parse("https://accounts.google.com/o/oauth2/v2/auth") /* google auth endpoint */,
//Uri.parse("https://www.googleapis.com/oauth2/v4/token") /* google token endpoint */
Uri.parse("https://dev-636680.okta.com/oauth2/default/v1/authorize") /* okta auth endpoint */,
Uri.parse("https://dev-636680.okta.com/oauth2/default/v1/token") /* okta token endpoint */
);
//String clientId = "511828570984-fuprh0cm7665emlne3rnf9pk34kkn86s.apps.googleusercontent.com"; // google
String clientId = "0oahkjjk3oszDWqvZ356"; // Okta
//Uri redirectUri = Uri.parse("com.google.codelabs.appauth:/oauth2callback"); // google
Uri redirectUri = Uri.parse("com.okta.dev-636680:/callback"); //okta
AuthorizationRequest.Builder builder = new AuthorizationRequest.Builder(
serviceConfiguration,
clientId,
AuthorizationRequest.RESPONSE_TYPE_CODE,
redirectUri
);
builder.setScopes("openid", "profile", "offline_access", "email");
AuthorizationRequest request = builder.build();
AuthorizationService authorizationService = new
AuthorizationService(view.getContext());
String action = "com.google.codelabs.appauth.HANDLE_AUTHORIZATION_RESPONSE";
Intent postAuthorizationIntent = new Intent(action);
PendingIntent pendingIntent = PendingIntent.getActivity(view.getContext(), request.hashCode(), postAuthorizationIntent, 0);
authorizationService.performAuthorizationRequest(request, pendingIntent);
请帮帮我。预先感谢。