首页
/ 【亲测免费】 微软认证库 for JavaScript 常见问题解决方案

【亲测免费】 微软认证库 for JavaScript 常见问题解决方案

2026-01-29 12:21:52作者:谭伦延

项目基础介绍

微软认证库 for JavaScript(Microsoft Authentication Library for JavaScript,简称 MSAL.js)是一个开源项目,它允许客户端和服务器端的 JavaScript 应用程序使用 Azure AD 进行用户认证。该项目支持工作或学校账户(Azure AD)、个人账户(MSA)以及通过 Azure AD B2C 服务的社会身份提供商(如 Facebook、Google、LinkedIn、Microsoft 账户等)。此外,它还能帮助应用程序获取访问微软云服务(如 Microsoft Graph)的令牌。

主要编程语言:JavaScript

新手常见问题及解决步骤

问题一:如何安装 MSAL.js 库?

解决步骤:

  1. 确保已经安装了 Node.js 环境。

  2. 在项目根目录下打开命令行。

  3. 执行以下命令安装 MSAL.js:

    npm install @azure/msal-browser
    

    或者,如果是 Node.js 项目:

    npm install @azure/msal-node
    

问题二:如何在浏览器中初始化 MSAL 实例?

解决步骤:

  1. 在 HTML 文件中引入 MSAL.js 的 CDN 链接或者在 JavaScript 文件中导入 MSAL.js 模块。

  2. 创建一个 MSAL 的公共客户端实例:

    import { PublicClientApplication } from '@azure/msal-browser';
    
    const msalConfig = {
        auth: {
            clientId: 'YOUR-APPLICATION-CLIENT-ID',
            authority: 'https://login.microsoftonline.com/YOUR-TENANT-ID',
            redirectUri: 'YOUR-REDIRECT-URI'
        }
    };
    
    const msalInstance = new PublicClientApplication(msalConfig);
    

问题三:如何使用 MSAL.js 进行用户登录?

解决步骤:

  1. 调用 MSAL 实例的 loginPopuploginRedirect 方法来启动登录流程。

    使用 loginPopup 的示例:

    msalInstance.loginPopup({
        scopes: ['user.read']
    }).then(loginResponse => {
        console.log('登录成功:', loginResponse);
    }).catch(error => {
        console.error('登录失败:', error);
    });
    

    使用 loginRedirect 的示例:

    msalInstance.loginRedirect({
        scopes: ['user.read']
    });
    
  2. 对于 loginRedirect 方法,需要在重定向回应用后处理 handleRedirectPromise

    msalInstance.handleRedirectPromise().then(response => {
        console.log('重定向登录成功:', response);
    }).catch(error => {
        console.error('重定向登录失败:', error);
    });
    

确保在实际应用中替换 'YOUR-APPLICATION-CLIENT-ID''YOUR-TENANT-ID''YOUR-REDIRECT-URI' 为你的应用程序的实际值。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
32
16
pytorchpytorch
Ascend Extension for PyTorch
Python
746
927
flutter_flutterflutter_flutter
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.02 K
267
docsdocs
暂无描述
Dockerfile
771
5.03 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
867
1.97 K
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
70
22
atomcodeatomcode
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get Started
Rust
1.94 K
202
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
694
1.36 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
465
456
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
C
458
5.25 K