amplify-studio icon indicating copy to clipboard operation
amplify-studio copied to clipboard

Creating Amplify auth social sign-in throws error on hosted UI providers

Open ykethan opened this issue 3 years ago • 7 comments

Before opening, please confirm:

  • [X] I have searched for duplicate or closed issues.
  • [X] I have read the guide for submitting bug reports.
  • [X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • [X] I have removed any sensitive information from my code snippets and submission.

App Id

d1qbjxyhsg82r

Region

us-east-1

Environment name

staging

Figma File Version (if applicable)

No response

Amplify CLI Version

10.5.2

If applicable, what version of Node.js are you using?

No response

What operating system are you using?

Mac

Browser type?

chrome

Describe the bug

Adding authentication with social sign-in as Apple causes the push to fail. Passing in private key with -----BEGIN PRIVATE KEY-----, -----END PRIVATE KEY----- causes the hosted provider function to fail. The Amplify CLI only accepts the key without the comments.

The cloudwatch logs for callout function throws the following error

{
    "Status": "FAILED",
    "Reason": "See the details in CloudWatch Log Stream: ******",
    "PhysicalResourceId": "2022/12/02/[$LATEST]*****",
    "StackId": "****",
    "RequestId": "7550d102-29fc-4377-b31d-d5759f845fbd",
    "LogicalResourceId": "HostedUIProvidersCustomResourceInputs",
    "NoEcho": false,
    "Data": {
        "err": {
            "message": "Internal server error.",
            "code": "InternalErrorException",
            "time": "2022-12-02T10:12:13.234Z",
            "requestId": "dbc******",
            "statusCode": 500,
            "retryable": true
        }
    }
}

refer to https://github.com/aws-amplify/amplify-cli/issues/11526#issuecomment-1379427972 and https://github.com/aws-amplify/amplify-cli/issues/11526#issuecomment-1380952213 for additional information.

Expected behavior

Validate key the key or parse the key with correct information.

Reproduction steps

  1. select authentication
  2. remove email and add phone number as login mechanism
  3. add social signin with apple
  4. add credentials (i pasted the key in with the -----BEGIN PRIVATE KEY-----) and deploy

Project Identifier

No response

Additional information

No response

ykethan avatar Jan 12 '23 20:01 ykethan

It looks like Amplify CLI might have logic to extract the correct value: https://github.com/aws-amplify/amplify-cli/blob/dev/packages/amplify-category-notifications/src/apns-cert-p12decoder.ts#L77-L90

johnpc avatar Jan 12 '23 21:01 johnpc

This seems to another possible code snippet that extracts the private key for the auth category. https://github.com/aws-amplify/amplify-cli/blob/dev/packages/amplify-category-auth/src/provider-utils/awscloudformation/utils/extract-apple-private-key.ts

Not clear if it is working or if it is actually used in headless mode

petercwk avatar Jan 19 '23 16:01 petercwk

Root cause could be that Step 2 of the authentication workflow should be required, but customers are able to deploy without selecting one.

Selecting Email resulted in a successful deployment on my last test.

Screen Shot 2023-01-25 at 11 08 32 AM

petercwk avatar Jan 25 '23 19:01 petercwk

Hey @petercwk, it failed in headless when i tested this: https://github.com/aws-amplify/amplify-cli/issues/11526#issuecomment-1380952213

ykethan avatar Jan 25 '23 19:01 ykethan

Hey @petercwk, it failed in headless when i tested this: aws-amplify/amplify-cli#11526 (comment)

From the json payload, "requiredSignupAttributes": []. Could you try adding "PHONE_NUMBER"

petercwk avatar Jan 25 '23 19:01 petercwk

using that also fails. On deeper dive found that using Phone number may not be supported by apple sign in. Headless fails for the same reason but when changing to email this works. Need to check if Cognito actually supports Apple sign-in with phone number.

ykethan avatar Jan 26 '23 20:01 ykethan

Note: the improvement here is to add validation on the box to see if this is a valid key. The fix will need to be on the CLI.

ykethan avatar Jun 04 '24 22:06 ykethan