Public Access to data model for all users

0

Hi I'm trying to allow all users to access this group data model. I'm not sure if the configuration is correct. I didn't place any @auth rules as I would like the data model to be publicly accessible. I've tried doing something like @auth (rules : [ { allow : public ]) and it gave me an error : InvalidDirectiveError: @auth directive with 'apiKey' provider found, but the project has no API Key authentication provider configured. I'm using Amazon Cognito User Pool

I'm using cognito username for authentication login

This is my implementation of querying data, schema.graphql and error

Enter image description here

  • I've tried changing the schema.graphl to

    type Group @model @auth(rules: [ { allow: public, provider: apiKey } ]){ id: ID! members: [String!]! location: String time: String specialRequest: String }

    and amplify update API to add a API authentication

    but it still throws the same error

1 Answer
1
Accepted Answer

In order for your data to be accessible to all signed in user, do this

Signed-in user data access To restrict a record's access to every signed-in user, use the private authorization strategy.

If you want to restrict a record's access to a specific user, see Per-user / owner-based data access. private authorization applies the authorization rule to every signed-in user access.

type Todo @model @auth(rules: [{ allow: private }]) { content: String }

https://docs.amplify.aws/cli/graphql/authorization-rules/#signed-in-user-data-access

answered 10 months ago
profile picture
EXPERT
reviewed 10 months ago
profile picture
EXPERT
reviewed 10 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions