Missing Authorization key in headers array, how to pass auth token to when posting data from form

Missing Authorization key in headers array, how to pass auth token to when posting data from form

nihal
Shopify Partner
6 0 0

hey guys, I am working with shopify custom app with php template, I have a react form and a post route when I try to post that form because I am using middleware "shopify.auth" in that route it says :

Missing Authorization key in headers array


here is my form code:

 
import { Form, FormLayout, TextField, Button } from "@shopify/polaris";
import { useState } from 'react';
import { useAppQuery } from '../hooks';
// import axios from 'axios';

function SubmitForm(props) {
    const [userId, setUserId] = useState('');
    const [apiToken, setApiToken] = useState('');
    const [apiId, setApiId] = useState('');
    const [loading, setLoading] = useState(false);
    const [formData, setFormData] = useState({
        apiKey: ''
      });

    const handleChange = (event) => {
      setFormData({ ...formData, [event.target.name]: event.target.value });
    };

    const handleSubmit =  (event) => {
        // Show loader
        event.preventDefault();
        setLoading(true);

        try {
            postDataToController(formData);
            //Send data to the backend API
            // const url = `/api/orders/get`;

            // // Send a GET request to the backend API
            // const response = await fetch(url);

            // if (!response.ok) {
            //     throw new Error('Failed to submit form');
            // }

            // Hide loader
            setLoading(false);

            // Handle successful form submission
            console.log('Form submitted successfully !!');
            props.onSuccess(); // Call the success callback passed from parent component
        } catch (error) {
            console.error('Error occurred:', error);

            // Hide loader
            setLoading(false);

            // Show error message
            props.onError(); // Call the error callback passed from parent component
        }
    };

    const postDataToController = async (formData) => {
        try {
            const response = await fetch('/api/saveprofile', {
            method: 'POST',
            headers: { 
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(formData),
          });
      
          if (!response.ok) {
            throw new Error(`Error: ${response.statusText}`);
          }
      
          const responseData = await response.json(); // Handle success response if needed
          console.log('Success:', responseData); // For debugging and feedback
        } catch (error) {
          console.error('Error:', error); // Handle errors appropriately (e.g., display error messages)
        }
    };

    return (
        <Form onSubmit={handleSubmit}>
            <FormLayout>
                <TextField
                    label="add name"
                    value={userId}
                    onChange={setUserId}
                    required
                />
                <Button primary submit loading={loading}>
                    {loading ? 'Saving...' : 'Save'}
                </Button>
            </FormLayout>
        </Form>
    );
}

export default SubmitForm;

 

here is my route code web.php:

Route::post('/api/saveprofile', function (Request $request) {
    $session = $request->get('shopifySession');
    $client = new Welcome();
    $result = $client->myFunction();
    return response()->json(['message' => "Got 100% '$result' webhook"], 200);
})->middleware('shopify.auth');

 

 
Replies 0 (0)