0

我们有两个端点/auth/token. 端点/auth返回可在调用/token以获取访问令牌时使用的授权代码。

使用 NuxtJS,auth模块成为了要走的路。this.$auth.loginWith("company")据我所知,登录过程运行良好。我被重定向到登录页面。我可以输入我的凭据,当这些凭据有效时,我会被重定向到配置的 URL。

到那时,一切都按预期工作。重定向将授权代码作为请求参数传递。

这是 URL 的样子:

http://localhost:3000/?state=Y6CWcCZanJ&session_state=2c966cd9-5834-4045-9bfb-6aa9f616f841&code=fbabf615-cd5e-4479-818a-6a7ba72de01b.2c966cd9-5834-4045-9bfb-6aa9f616f841.553d562b-c454-4681-83ae-98cd93dbfa90

但是,code我希望auth模块会自动调用/token端点。但事实并非如此。这是为什么?

使用后是否需要显式调用它this.$auth.loginWith("company")?就像是:

this.$auth.loginWith("company");
this.$auth.fetchToken();

或者它是隐式完成的?

这是里面的配置nuxt.config.js

...
  auth: {
    strategies: {
      company: {
        scheme: "oauth2",
        endpoints: {
          authorization:
            "https://login.mycompany.com/auth/realms/apps/protocol/openid-connect/auth",
          token:
            "https://login.mycompany.com/auth/realms/apps/protocol/openid-connect/token",
          userInfo:
            "https://login.mycompany.com/auth/realms/apps/protocol/openid-connect/userinfo",
          logout: "http://localhost:3000/logout"
        },
        token: {
          name: "Authorization",
          property: "access_token",
          type: "Bearer",
          maxAge: 1800
        },
        refreshToken: {
          property: "refresh_token",
          maxAge: 60 * 60 * 24 * 30
        },
        responseType: "code",
        grantType: "authorization_code",
        accessType: undefined,
        redirectUri: "http://localhost:3000",
        logoutRedirectUri: undefined,
        clientId:
          process.env.CLIENT_ID ||
          "3004761-241-dab74c5e-ad70-11eb-bea4-4193bd361dc612123",
        scope: ["all"],
        codeChallengeMethod: "S256"
      }
    }
  },
...
4

1 回答 1

0

您是否有任何机会忘记设置@nuxtjs/axios或显式配置auth中间件?

// nuxt.config.js
modules: ['@nuxtjs/auth-next', '@nuxtjs/axios'],

router: {
  middleware: ['auth'],
},
于 2022-01-28T14:58:45.583 回答