使用featherjs在github上进行身份验证会导致奇怪的行为

时间:2017-12-12 12:51:22

标签: feathersjs

我正在尝试使用github进行身份验证。

我正确配置了回调,successRedirect和failureRedirect。

调用successRedirect页面。在这个页面中,我尝试调用authenticate函数。

client.authenticate({
      strategy: 'github'
    })

承诺使用令牌解析但当我尝试访问受保护的服务时,它会返回错误。然后,如果我尝试重试第二次访问该服务,它就可以工作。

有人可以解释我或给我一个有效的例子。

我的代码:

const hello = client.service('hello');

function getVal(iter) {
  console.log("Iter " + iter)

  hello.get(1, {}).then((data) => {
    console.log('User is logged');
    console.dir(data)
  }, (error) => {
    console.dir(error)
    getVal(iter + 1)
  })
}

client.authenticate({
  strategy: 'github'
}).then((token) => {
  console.dir(token)
  getVal(0)
}, (error) => console.dir(error));

在日志中,我看到第一次调用服务失败并出现身份验证错误但不是第二次我应该记录(因为它在配置的成功重定向中)

我的日志:

Object { accessToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6ImFjY2…" }

Iter 0
{
className: "not-authenticated"
code: 401
……
}
Iter 1
User is logged
{…}

1 个答案:

答案 0 :(得分:1)

oAuth2 client usage API表示您不必调用authenticate,而只需将用户链接到/auth/github以启动oAuth流程:

<a href="/auth/github" class="button">Login With GitHub</a>