Hosted UI OAUTH - окно Facebook не открывается - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь интегрировать OAuth (Facebook) в свое приложение с помощью AWS Amplify. Проблема в том, что при использовании сOAuth HOC я не могу открыть окно авторизации, вместо этого я перенаправляюсь на страницу размещенного пользовательского интерфейса, где я могу нажать Login и т. Д.

Чтобы лучше проиллюстрировать мою проблему, представьте, что вы нажимаете кнопку со страницы, которая отвечает за аутентификацию с Facebook, и вместо того, чтобы показывать вам окно для подтверждения ваших действий, вы получаете перенаправление на страницу размещенного пользовательского интерфейса и Затем вы можете нажать на кнопку входа в Facebook. 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);
...