托管的UI OAUTH-Facebook窗口未打开

时间:2019-04-04 19:13:51

标签: reactjs oauth oauth-2.0 aws-sdk aws-amplify

我正在尝试使用AWS Amplify将OAuth(Facebook)集成到我的应用程序中。问题是使用 withOAuth HOC,我无法打开授权窗口,相反,我被重定向到Hosted UI页面,可以在其中按Login等。

为更好地说明我的问题,假设您正在单击页面上负责对Facebook进行身份验证的按钮,而不是向您显示确认操作的窗口,而是重定向到Hosted UI页面,然后,您可以单击Facebook登录按钮。 托管的UI URL如下所示:

https://xxxxx.auth.us-east-1.amazoncognito.com/login?redirect_uri=http://localhost:3000/&response_type=code&client_id=yyyyyyyyy

我尝试直接访问窗口位置,并且可以正常工作。

工作方式

export const urlToFacebook = `https://${ oauth.domain }/oauth2/authorize?identity_provider=Facebook&redirect_uri=${ oauth.redirect_uri }&response_type=${oauth.responseType}&client_id=${ oauth.clientId }&scope=aws.cognito.signin.user.admin email openid profile`;
window.location.href = urlToFacebook;

不起作用的方式

export const oauth = {
  domain: "xxxxxxxx.auth.us-east-1.amazoncognito.com",
  scope: [
    "email",
    "profile",
    "openid",
    "aws.cognito.signin.user.admin"
  ],
  redirectSignIn: "http://localhost:3000/",
  redirectSignOut: "http://localhost:3000/",
  responseType: "code"
};

Auth.configure({ oauth });

(我与OAuth一起使用的组件)

import React from "react";
import { Button, Container, Icon } from "semantic-ui-react";
import { withOAuth } from "aws-amplify-react";

const SocialAuth = (props: any) => {
  return (
    <Container textAlign="center">
      <Button color="facebook" fluid onClick={props.OAuthSignIn}>
        <Icon name="facebook" /> Facebook
      </Button>
    </Container>
  );
};

export default withOAuth(SocialAuth);

0 个答案:

没有答案