使用 NativeScript 配置 OAuth 2 身份验证提供的企业身份验证项目模板

Configuring OAuth 2 Authentication with NativeScript provided Enterprise Auth project template

我正在使用 NativeScript 提供的 Enterprise Auth 项目模板配置 OAuth 2 身份验证,我按照完整指南配置 Azure Active Directory。当我通过 tns 预览执行应用程序时设置 URL 和密钥后,出现以下错误:

https://auth.kinvey.com/v3/oauth/auth?client_id=kid_SJcDEau7N&redirect_uri=nsplayresume%3A%2F%2F&response_type=code&scope=openid

错误: {"error":"invalid_client","error_description":"Client authentication failed.","debug":"Client Verification Failed: redirect uri not valid"}

当我检查登录脚本时它显示错误,因为 Kinvey.User.loginWithMIC() 函数中没有给出参数所以我提供了 Kinvey.User.loginWithMIC('http://example.com') 作为它正在视频教程中展示。

login() {
    if (Kinvey.User.getActiveUser() == null) {
        Kinvey.User.loginWithMIC()
            .then((user: Kinvey.User) => {
                this.navigateHome();
                console.log("user: " + JSON.stringify(user));
            })
            .catch((error: Kinvey.BaseError) => {
                alert("An error occurred. Check your Kinvey settings.");
                console.log("error: " + error);
            });
    } else {
        this.navigateHome();
    }
}

正如预期的那样,它应该显示我在 Azure Active Directory 中配置的帐户的登录屏幕。

Here 我有一个 NativeScript 解决方案,它利用了 Kinvey 的 Mobile Identity Connect。它基本上是使用您想要使用的相同模板构建的。在 运行 该项目之前,您需要注意几个重要步骤,它们如下:

  • src/app/shared 文件夹中打开 kinvey.common.ts 文件,然后 设置您的 应用程序 ID应用程序秘密(以及 实例 ID 如果 存在,如果不存在 - 删除属性)。这是必需的,以便 NativeScript 应用程序 可以连接到您的 Kinvey 后端
  • 打开 Login 组件的 TypeScript 控制器 并设置您的 MIC 标识符MIC 标识符MIC 服务的 ID。这将告诉应用程序从后端引用哪个服务。
  • Kinvey 控制台 打开 MIC 服务设置 并将 myscheme:// 设置为 重定向 URI 授权端点 通常会将用户重定向回客户端注册的重定向URL。根据平台的不同,本机应用程序可以声明一个 URL 模式 ,或者注册一个 自定义 URL 方案 启动应用程序。例如,iOS 应用程序 可以注册自定义协议,例如 myapp://,然后使用 myapp://callbackredirect_uri

对于这些关键项目的最新列表,您可以查看存储库的 README 文件。试试看,让我知道你是否能让 Kinvey MIC 正常工作。