3.7. 自定义适配器
在某些情况下,您可能需要在默认不支持的环境中运行适配器,如 Capacitor。要在这些环境中使用 JavasScript 客户端,您可以传递自定义适配器。例如,第三方库可以提供这样的适配器,以便可靠地运行适配器:
import Keycloak from 'keycloak-js';
import KeycloakCapacitorAdapter from 'keycloak-capacitor-adapter';
const keycloak = new Keycloak({
url: "http://keycloak-server",
realm: "my-realm",
clientId: "my-app"
});
await keycloak.init({
adapter: KeycloakCapacitorAdapter,
});
这个特定软件包不存在,但提供了一个很好的例子,说明如何将此类适配器传递给客户端。
也可以自行进行适配器,因此您必须实现 KeycloakAdapter 接口中描述的方法。例如,以下 TypeScript 代码可确保正确实施所有方法:
import Keycloak, { KeycloakAdapter } from 'keycloak-js';
// Implement the 'KeycloakAdapter' interface so that all required methods are guaranteed to be present.
const MyCustomAdapter: KeycloakAdapter = {
async login(options) {
// Write your own implementation here.
}
// The other methods go here...
};
const keycloak = new Keycloak({
url: "http://keycloak-server",
realm: "my-realm",
clientId: "my-app"
});
await keycloak.init({
adapter: MyCustomAdapter,
});
自然情况下,您还可以在没有 TypeScript 的情况下进行此操作,但确保正确实施接口将完全保留您。