微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nestjs护照-facebook无效的OAuth访问令牌

如何解决Nestjs护照-facebook无效的OAuth访问令牌

我正在我的nestJS应用程序中实现passport-facebook。我发现了许多使用不同解决方案的示例和问题,我试图以不同的方式实施它,但仍然没有运气。 这是我的策略:

const FacebookTokenStrategy = require('passport-facebook-token');

    @Injectable()
    export class FacebookStrategy {
      constructor() {
        this.init();
      }
      init() {
        use(
          new FacebookTokenStrategy(
            {
              clientID: '...',clientSecret: '...',fbGraphVersion: 'v8.0',profileFields: ['id','emails']
            },async (
              accesstoken: string,refreshToken: string,profile: any,done: any,) => {
              console.log('facebook profile:',profile);
              return done(null,null);
    },),);}}

和控制器处理程序:

@UseGuards(AuthGuard('facebook-token'))
  @Get('facebook')
  async getTokenAfterFacebookSignIn(@Req() req) {
    console.log(req)
}

我很确定我使用了正确的clientIDclientSecret。在facebook开发人员工具上,我生成这样的令牌:

token

因此,我使用此令牌调用http://127.0.0.1:3000/auth/facebook?session_token=EAAgSTU1....WpHZAPgZDZD并收到以下错误

oauthError: { statusCode: 400,data: '{"error":{"message":"Invalid OAuth access token.","type":"OAuthException","code":190,"fbtrace_id":"AJqucuXGs8DnoYzT3i5cO7p"}}' }

我的错误在哪里?非常感谢!

解决方法

问题是查询变量名称错误。它必须是access_token

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。