我正在使用NuxtJs构建一个web应用程序,我正在使用nuxtjs/ auth --接下来,我将使用Google和Facebook auth提供商进行OAuth授权。我已经配置了post授权端点来从后端获取令牌,而当我在nuxt配置中只有一个策略( google或facebook)时,它可以工作,但是当两者都有时,两个登录都使用第一个策略的端点。我在这方面花了很多时间,如果你对如何解决这个问题有任何想法,请分享。谢谢!
编辑:这在localhost上很好,我没有看到端点被覆盖,但是在部署时,第一个策略的令牌端点也会被应用到第二个端点
这是我在nuxt.config.js中的auth配置
auth: {
strategies: {
facebook: {
responseType: "code",
endpoints: {
token: Config.HOST + "/api/social-login/facebook/",
userInfo: Config.HOST + "/api/auth/user/"
},
clientId: Config.FACEBOOK_CLIENT_ID,
scope: ["public_profile", "email"],
refreshToken: {
property: "refresh_token",
maxAge: 60 * 60 * 24 * 30
}
},
google: {
clientId: Config.GOOGLE_CLIENT_ID,
responseType: "code",
endpoints: {
token: Config.HOST + "/api/social-login/google/",
userInfo: Config.HOST + "/api/auth/user/"
},
codeChallengeMethod: "",
refreshToken: {
property: "refresh_token",
maxAge: 60 * 60 * 24 * 30
}
}
}
}发布于 2021-04-17 21:51:43
auth-next的一个问题是,它当时只有一个当前的策略。这意味着您不能同时使用两种不同的策略登录。
比如说,一个用户登录Facebook。然后,将活动策略设置为nuxt.config.js文件中的facebook策略。
然后用户登录到Google,auth-接下来检查她/他是否登录了(是的,她/他刚刚登录了Facebook,所以用户登录了),然后将用户发送到“登录”页面。但是,而不是Google中的那个,而是活动策略配置中的那个: Facebook。
因此,在使用auth-next和两个或更多策略进行实时测试时,必须确保退出所有可能的策略来查看流程。或者对其进行编码,这样用户就永远无法登录,而同时已经使用策略登录了。
不是说你的问题是这样的,只是说这是开发人员在测试前端时应该注意到的事情,因为它确实创造了您的情况。
https://stackoverflow.com/questions/66522430
复制相似问题