質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

1回答

930閲覧

Laravel Passportのoauth/tokenにAxiosからアクセスできない。

Shichi7

総合スコア35

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2019/08/13 14:47

Laravelで作ったAPIをVue.jsで作ったSPAからAxiosを使って呼び出しています。

同じサーバーの他のAPIにはGET,POSTできるのに、oauth/tokenのみアクセスできません。
サーバー側ではcorsのセットアップをし、クロスドメインに対応しました。
同じサーバー上の他のAPIに対しては認証して操作等できています。

思い当たることがあれば教えてください。

./repositories/Repository.js

js

1import axios from 'axios' 2 3const baseDomain = '***.****.io' 4const baseURL = `https://${baseDomain}` 5 6export default axios.create({ 7 baseURL: baseURL, 8 headers: { 9 'Content-Type': 'application/json', 10 'Accept': 'application/json', 11 'Access-Control-Allow-Origin': '*', 12 'X-Requested-With': 'XMLHttpRequest' 13 }, 14 responseEncoding: 'utf8', 15 responseType: 'json' 16}) 17

./repositories/authRepository.js

js

1import Repository from './Repository' 2 3export default { 4 // ******動かず*********************************** 5 loginUser () { 6 var data = { 7 'client_id': 2, 8 'client_secret': '******************', 9 'username': 'test@test.com', 10 'password': 'testtest', 11 'grant_type': 'password', 12 'scope': '' 13 } 14 return Repository.post('oauth/token', data) 15 }, 16 17 // ******動く*********************************** 18 getUser () { 19 Repository.defaults.headers.common['Authorization'] = `Bearer *************` 20 return Repository.get('api/user', {}) 21 }, 22 23 // ******動く*********************************** 24 cerateUser () { 25 var data = { 26 'client_id': 2, 27 'client_secret': '********************', 28 'name': 'username', 29 'email': 'test@example.com', 30 'password': 'abc123', 31 'grant_type': 'password', 32 'scope': '' 33 } 34 return Repository.post('api/users', data) 35 } 36}

./components/PageLogin.vue

js

1import { RepositoryFactory } from './../repositories/RepositoryFactory' 2const AuthRepository = RepositoryFactory.get('auth') 3 4export default { 5 name: 'login', 6 data () { 7 return { 8 isLoading: false, 9 posts: [] 10 } 11 }, 12 created: function () { 13 this.fetch() 14 }, 15 methods: { 16 async fetch () { 17 this.isLoading = true 18 const { data } = await AuthRepository.loginUser() 19 this.isLoading = false 20 this.posts = data 21 console.log(data) 22 } 23 } 24}

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

api/にはcors設定をしてましたが、passportのoauth/tokenのルートに設定ができていなかったことが原因でした。

corsの設定はこちらを使いました。
CORS Middleware for Laravel 5

投稿2019/08/14 15:09

Shichi7

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問