【发布时间】:2017-01-24 15:46:08
【问题描述】:
我正在尝试使用 Auth0 实现服务器端社交登录,但我被 this guide 的第 3 步困住了。我从前面的步骤中得到一个回调值http://mywebsite/login?code=bLvc4EmsaezBp1sN&state=UXZ8DfOZeRNGy4AKD4DsaS0n#_=_,但是当我在我的服务器上将code 的值提交到Auth0 端点/oauth/token 时,我得到了响应{"error":"invalid_grant","error_description":"Invalid authorization code"}。
从我看到的例子来看,我认为我的代码太短了。我在这里做错了什么?
Wreck.post(`https://company-dev.eu.auth0.com/oauth/token`, {
payload: {
client_id: client_id, // rknvAeGruVDG3To0Lc37hMuDKsUNBBBV (too short?)
code: code, // Sl9fF6grhgDoecDt
redirect_uri: redirect_uri, // http://localhost:3000/login
grant_type: grant_type, // 'authorization_code'
client_secret: client_secret, // Shh, secret
state: state // 123ABC123
}
}, (err, res, payload) => {
if (err) {
console.log(err);
reject();
}
console.log(payload.toString('utf8'));
resolve();
});
编辑:由于意识到我的方式错误并且参数已移至网址。
现在我收到错误 Unauthorized
【问题讨论】:
-
您可以在没有客户密码的情况下发布您的代码和/或您发送到 /oauth/token 的 POST 正文吗?
-
@neverendingqs 更新了 OP!
-
payload自动转换为application/x-www-form-urlencoded(而不是application/json?) -
您的请求中除了401之外还有响应正文吗?
-
不,只是
Unauthorized