在混合应用程序中没有使用离子3上的keycloak进行身份验证

时间:2017-08-07 12:39:14

标签: angular cordova docker ionic3 keycloak

我需要您在混合应用程序中使用keycloak进行身份验证的帮助。

我用docker运行keycloak。我用ionic3,angular@4.1.3和cordova编写了一个移动应用程序。

我创建了我的领域" demo",以及一个客户端" demo-client"使用有效的重定向网址= http://localhost和网络来源= http://localhost。 我已将此package.json:

上传到我的应用
{
  "realm": "demo",
  "auth-server-url": "http://192.168.238.60:8080/auth",
  "ssl-required": "external",
  "resource": "demo-client",
  "public-client": true
}

我还添加了whiltelist和inappbrowser插件。

当我启动我的应用程序并单击登录时,我在inappbrowser中获得了keycloak的登录页面。我注册然后回到我的应用程序perfeclty。但是我仍未在我的应用中进行身份验证,但我的会话在keycloak管理控制台中完全打开。

似乎我没有从我的应用程序中的keycloak服务器获取令牌和会话信息。

互联网上没有任何使用这些技术的信息。如果某人已经涉及这些问题,那么帮助我将是非常好的。

最后一件事,当我在浏览器上使用" ionic serve"打开我的应用程序时,一切正常。认证有效!!

=>似乎信息没有从浏览器回到应用程序。

以下是我初始化keycloak的方法。

在main.ts上

KeycloakProvider.init({ onLoad: "check-sso",checkLoginIframe: false })
  .then(() => {
    platformBrowserDynamic().bootstrapModule(AppModule);
  })
  .catch((e: string) => {
    console.log('Error in ng2 bootstrap: ' + e);
 });

提供者是:

const Keycloak = require('keycloak-js');

@Injectable()
export class KeycloakProvider {
  static keycloakAuth: KeycloakInstance = Keycloak("assets/keycloak.json");

  static init(options?: any): Promise<any> {
    console.log(JSON.stringify(KeycloakProvider.keycloakAuth));
    return new Promise((resolve, reject) => {
      KeycloakProvider.keycloakAuth.init(options)
        .success(() => {
          resolve();
        })
        .error((errorData: any) => {
          reject(errorData);
        });
     });
  }
}

0 个答案:

没有答案