首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure AD B2C with -auth OPError:期望值200 OK,got: 404未找到

Azure AD B2C with -auth OPError:期望值200 OK,got: 404未找到
EN

Stack Overflow用户
提问于 2022-09-23 09:28:51
回答 2查看 220关注 0票数 0

我试着用那些文章https://next-auth.js.org/providers/azure-ad-b2chttps://next-auth.js.org/adapters/prisma之后的下一篇文章实现azure-ad-b2c登录。但现在我犯了错误。你知道怎么回事吗?

错误

代码语言:javascript
复制
https://next-auth.js.org/errors#signin_oauth_error expected 200 OK, got: 404 Not Found {
  error: {
    message: 'expected 200 OK, got: 404 Not Found',
    stack: 'OPError: expected 200 OK, got: 404 Not Found\n' +
      '    at processResponse (/home/leokorr/Projects/app-tests/microsoft-test/node_modules/openid-client/lib/helpers/process_response.js:41:11)\n' +
      '    at Function.discover (/home/leokorr/Projects/app-tests/microsoft-test/node_modules/openid-client/lib/issuer.js:152:20)\n' +
      '    at processTicksAndRejections (node:internal/process/task_queues:96:5)\n' +
      '    at async openidClient (/home/leokorr/Projects/app-tests/microsoft-test/node_modules/next-auth/core/lib/oauth/client.js:16:14)\n' +
      '    at async getAuthorizationUrl (/home/leokorr/Projects/app-tests/microsoft-test/node_modules/next-auth/core/lib/oauth/authorization-url.js:65:18)\n' +
      '    at async Object.signin (/home/leokorr/Projects/app-tests/microsoft-test/node_modules/next-auth/core/routes/signin.js:37:24)\n' +
      '    at async NextAuthHandler (/home/leokorr/Projects/app-tests/microsoft-test/node_modules/next-auth/core/index.js:238:26)\n' +
      '    at async NextAuthNextHandler (/home/leokorr/Projects/app-tests/microsoft-test/node_modules/next-auth/next/index.js:23:19)\n' +
      '    at async /home/leokorr/Projects/app-tests/microsoft-test/node_modules/next-auth/next/index.js:59:32\n' +
      '    at async Object.apiResolver (/home/leokorr/Projects/app-tests/microsoft-test/node_modules/next/dist/server/api-utils/node.js:366:9)',
    name: 'OPError'
  },
  providerId: 'azure-ad-b2c',
  message: 'expected 200 OK, got: 404 Not Found'
}

...nextauth.js

代码语言:javascript
复制
import NextAuth from "next-auth"
import AzureADB2CProvider from "next-auth/providers/azure-ad-b2c"
import { PrismaAdapter } from "@next-auth/prisma-adapter"
import { PrismaClient } from "@prisma/client"

const prisma = new PrismaClient()

export default NextAuth({
  adapter: PrismaAdapter(prisma),
  providers: [
    AzureADB2CProvider({
      tenantId: process.env.AZURE_AD_TENANT_ID,
      clientId: process.env.AZURE_AD_CLIENT_ID,
      clientSecret: process.env.AZURE_AD_CLIENT_SECRET,
      primaryUserFlow: process.env.AZURE_AD_B2C_PRIMARY_USER_FLOW,
      authorization: { params: { scope: "offline_access openid" } },
    })
  ],
})

index.js

代码语言:javascript
复制
import { signIn } from 'next-auth/react'

export default function Home() {
  const handleLoginb2c = () => signIn('azure-ad-b2c', {
    callbackUrl: `http://localhost:3000/loggedin`,
  }).catch((error) => console.log(error))


  return (
    <div>
      <button onClick={handleLoginb2c}>b2c Log in</button>
    </div>
  );
}
EN

回答 2

Stack Overflow用户

发布于 2022-09-23 20:16:03

tenantId,clientId,clientSecret应该是不同的env。租户id必须是没有.onmicrosoft.com的租户名。如果没有工作,请在蔚蓝应用程序中为:http://localhost:3000/api/auth/callback/azure-ad-b2c重定向URI

票数 0
EN

Stack Overflow用户

发布于 2022-10-25 14:10:07

确保您使用的是租户名称,而不是租户ID,这个值的位置可以在下面的红色图像中找到。它是您在设置租户时所选择的任何alpahnumeric值(.onmicrosoft.com之前的内容)。

我以前有ID,当我切换到这个值时,它就像一种魅力。希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73825676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档