混合应用程序中没有使用ion3上的keycloakauthentication

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

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

我创build了我的领域“演示”,并创build了有效的redirectURL = http:// localhost和Web Origins = http:// localhost的客户端“demo-client”。 我已经上传到我的应用程序这个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插件。

当我启动我的应用程序,然后点击login,我在inappbrowser中获得keycloak的login页面。 我注册,我回到我的应用程序perfeclty。 但是,我仍然没有在我的应用程序中进行身份validation,但是我的会话完全在keycloakpipe理控制台中打开。

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

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

最后一件事情是,当我在浏览器上用“离子服务”打开我的应用程序时,一切正在发现。 身份validation作品!

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

这是我如何初始化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); }); }); } }