Azure AD B2C 登录出现错误 请求中提供的重定向 URI 'localhost:3001' 未注册

问题描述 投票:0回答:1

我在 Azure AD B2C 登录时收到此错误

AADB2C90006:请求中提供的重定向 URI“http://localhost:3001/”未针对客户端 ID“714f2acb-2483-4759-9114-f6c2df737b5d”注册。

我添加了这样的网络重定向网址:

以下是反应端代码

import { LogLevel } from "@azure/msal-browser";

export const b2cPolicies = {
    names: {
        signUpSignIn: 'B2C_1_signupsignin1',
        forgotPassword: 'B2C_1_reset_v3',
        editProfile: 'B2C_1_editprofile',
    },
    authorities: {
        signUpSignIn: {
            authority: 'https://testingtenant311.b2clogin.com/testingtenant311.onmicrosoft.com/B2C_1_signupsignin1',
        },
        forgotPassword: {
            authority: 'https://testingtenant311.b2clogin.com/testingtenant311.onmicrosoft.com/B2C_1_reset_v3',
        },
        editProfile: {
            authority: 'https://testingtenant311.b2clogin.com/testingtenant311.onmicrosoft.com/B2C_1_editprofile',
        },
    },
    authorityDomain: 'testingtenant311.b2clogin.com',
};


export const msalConfig = {
    auth: {
        clientId: '714f2acb-2483-4759-9114-f6c2df737b5d',
        authority: b2cPolicies.authorities.signUpSignIn.authority,
        knownAuthorities: [b2cPolicies.authorityDomain],
        redirectUri: '/',
        postLogoutRedirectUri: '/',
        navigateToLoginRequestUrl: false,
    },
    cache: {
        cacheLocation: 'sessionStorage',
        storeAuthStateInCookie: false,
    },
    system: {
        loggerOptions: {
            loggerCallback: (level: any, message: any, containsPii: any) => {
                if (containsPii) {
                    return;
                }
                switch (level) {
                    case LogLevel.Error:
                        console.error(message);
                        return;
                    case LogLevel.Info:
                        // console.info(message);
                        return;
                    case LogLevel.Verbose:
                        console.debug(message);
                        return;
                    case LogLevel.Warning:
                        console.warn(message);
                        return;
                    default:
                        return;
                }
            },
        },
    },
};

export const protectedResources = {
    apiTodoList: {
        endpoint: 'http://localhost:5000/api/todolist',
        scopes: {
            read: ['https://fabrikamb2c.onmicrosoft.com/TodoList/ToDoList.Read'],
            write: ['https://fabrikamb2c.onmicrosoft.com/TodoList/ToDoList.ReadWrite'],
        },
    },
};

export const loginRequest = {
    scopes: [...protectedResources.apiTodoList.scopes.read],
};

请帮我解决这个错误。

提前致谢

azure azure-ad-b2c azure-ad-msal azure-authentication
1个回答
0
投票

如果未在 Azure AD B2C 中配置重定向 URL,通常会出现错误 “请求中提供的重定向 URI 'http://localhost:3001/' 未为客户端 ID 'XXX' 注册”申请。

交叉验证您是否在正确的应用程序中配置了重定向 URL:

enter image description here

如果问题仍然存在,请在代码中的

redirectUri
参数中传递重定向 URL:

export const msalConfig = {
    auth: {
        clientId: 'ClientID',
        authority: b2cPolicies.authorities.signUpSignIn.authority,
        knownAuthorities: [b2cPolicies.authorityDomain],
        redirectUri: 'http://localhost:3001',
        postLogoutRedirectUri: '/',
        navigateToLoginRequestUrl: false,
    },

注意:保存更改或添加新的重定向 URL 后,更改可能需要三到五分钟才能生效。参考这个MsDoc

  • 尝试清除缓存并重新登录。
  • 请参阅 Microsoft QnA,作者:Renatas Lauzadis
© www.soinside.com 2019 - 2024. All rights reserved.