登录后,SSO Okta无法返回到应用程序

时间:2019-04-19 13:04:14

标签: android single-sign-on okta appauth

我正在尝试为我的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);

请帮帮我。预先感谢。

0 个答案:

没有答案