【发布时间】:2019-05-14 23:59:58
【问题描述】:
我正在尝试在 google 操作中实现帐户链接。我选择了 Google 和 OAuth 以及 Implicit 链接类型。在Authorization URL 中,我正在验证请求并重定向到google 的oauth 处理程序。这是示例代码,
@Post('/google/actions/authorize')
public async authorizeGoogle(
@Req() request: Request,
@Res() response: Response,
@Body() authorizeRequest: DAuthorizeRequest,
) {
// tempToken is stored in cookie after login.
const tempToken = request.cookies['temp-token'];
if (!tempToken) {
throw new UnauthorizedException();
}
let token: DTemporaryToken;
try {
token = await this.jwtService.verifyAsync<DTemporaryToken>(tempToken);
} catch (err) {
throw new UnauthorizedException();
}
// validate request parameters are as it should be.
const valid = this.authService.validateGoogleOauthRequest(
token,
authorizeRequest,
);
if (!valid) {
throw new UnauthorizedException();
}
const user: User = await this.userService.findById(token.user_id);
const accessToken = await this.authService.generateAccessTokenForGoogle(
user,
);
const redirectUri = `${
authorizeRequest.redirect_uri
}?access_token=${accessToken}&error=${false}&token_type=bearer&state=${
authorizeRequest.state
}`;
response.redirect(redirectUri);
}
重定向后出现此错误,
抱歉,出了点问题,所以我无法让你登录。但你可以 请稍后再试。
这是dialogflow 代码
dialogFlowApp.intent(
'Default Welcome Intent',
async (conv: DialogflowConversation) => {
conv.ask(new SignIn('to access your data'));
},
);
dialogFlowApp.intent('sign_in', (conv, params, signIn) => {
console.log('SIGN IN', signIn)
conv.ask('how are you?');
})
signIn 值的控制台日志是
登录 {'@type': 'type.googleapis.com/google.actions.v2.SignInValue',状态:'错误'}
就是这样,我不知道出了什么问题。没有足够的描述性错误来解释哪里出了问题。
【问题讨论】:
标签: dialogflow-es actions-on-google google-assistant-sdk