Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel - Send api_token within the header

I'm building an API for Laravel and I want to send the api_token within the header instead of the form post. Is this something that is already built in or would I have to go the route of figuring out how to create my own auth driver?

like image 459
user1157885 Avatar asked Dec 14 '22 05:12

user1157885


1 Answers

After struggling a little with this myself I got it working. You need to first follow this little tutorial on how to use the api_token for your laravel API: https://gistlog.co/JacobBennett/090369fbab0b31130b51

Then once you have the api_token in the users table etc you can now pass this in the header of each request.

My laravel is using the Vueify templates, ie I have under /components/Comment.vue etc files.

First step is to pass the users api_token to the Vue Template by passing a property through the component definition in your blade template:

<comments id_token="{{ access()->user()->api_token }}"></comments>

Then ensure in your .vue file that you accept the property by adding it to the "props":

export default {
    data: function() {
        return {
            edit: false,
            list: [],
            comment: {
                id: '',
                name: '',
                body: ''
            }
        };
    },

    props: ['id_token'],

    created: function() {
        Vue.http.headers.common['Authorization'] = 'Bearer ' + this.id_token;

        this.fetchCommentList();
    },

Notice above that I also added the token to the common headers in order to have it go through each request used in all the methods further down.

Vue.http.headers.common['Authorization'] = 'Bearer ' + this.id_token;
like image 135
Andrew Avatar answered Jan 31 '23 18:01

Andrew