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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

570閲覧

Larabel PassportのAPIでユーザー登録をしたい

Shichi7

総合スコア35

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2018/07/16 14:07

編集2018/07/16 15:57

LarabelとPassportを使って、APIサーバーを作っています。
新規ユーザー登録のAPIの作り方を教えてください。
クライアントアプリはシークレットキーとクライアントIDは持っているので、それと合わせてIDとパスワードをPostすると、アクセストークンが返って来るようにしたいです。

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

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

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

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

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

m.ts10806

2018/07/16 21:29

Larabel → Laravel スペルミスはちょっとした不具合も見つけられなくなります。ご注意を。 Passportについて公式リファレンスもあるようですが、そちらは確認して試されたのでしょうか?いずれにしてもこの質問内容では丸投げなので回答は見込めませんよ。「リファレンス読んでください」だけの回答で良ければしますが。
t_obara

2018/07/17 01:39

↑に追記となりますが、質問内容はアルゴリズムがわかっているがPHP/Swiftで実装することができないのか、アルゴリズム(ロジック)自体がわからないのか、どちらもわからないのかも明記された方が良ろしいかと思います。
guest

回答2

0

まず、routesのapi.phpに以下を追記します。

php

1Route::post('users', 'UserController@store');

その後、UserController.phpを作成し、以下のコードを書きました。

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\User; 7 8class UserController extends Controller 9{ 10 public function store(Request $request) 11 { 12 $valid = validator($request->only('email', 'name', 'password'), [ 13 'name' => 'required|string|max:255', 14 'email' => 'required|string|email|max:255|unique:users', 15 'password' => 'required|string|min:6', 16 ]); 17 18 if ($valid->fails()) { 19 $jsonError=response()->json($valid->errors()->all(), 400); 20 return \Response::json($jsonError); 21 } 22 23 $data = request()->only('email','name','password'); 24 25 $user = User::create([ 26 'name' => $data['name'], 27 'email' => $data['email'], 28 'password' => bcrypt($data['password']) 29 ]); 30 31 $request->request->add([ 32 'username' => $data['email'], 33 'password' => $data['password'] 34 ]); 35 36 // Fire off the internal request. 37 $token = Request::create( 38 'oauth/token', 39 'POST' 40 ); 41 return \Route::dispatch($token); 42 } 43} 44

クライアントには、client_idとclient_secretを持たせておきます。

APIの叩き方は、以下です。

http://localhost/api/users [POST]

json

1{ 2 "name" : "name", 3 "email": "testuser@test.com", 4 "password": "testtest", 5 "grant_type": "password", 6 "client_id" : "{your_client_id}", 7 "client_secret": "{your_client_secret}", 8 "scope": "" 9}

すると、以下の内容がかえります。

json

1{ 2"token_type": "Bearer", 3"expires_in": 31535999, 4"access_token": "token", 5"refresh_token": "token" 6}

以上です。

投稿2018/07/19 03:38

Shichi7

総合スコア35

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

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

0

自己解決

まず、routesのapi.phpに以下を追記します。

php

1Route::post('users', 'UserController@store');

その後、UserController.phpを作成し、以下のコードを書きました。

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\User; 7 8class UserController extends Controller 9{ 10 public function store(Request $request) 11 { 12 $valid = validator($request->only('email', 'name', 'password'), [ 13 'name' => 'required|string|max:255', 14 'email' => 'required|string|email|max:255|unique:users', 15 'password' => 'required|string|min:6', 16 ]); 17 18 if ($valid->fails()) { 19 $jsonError=response()->json($valid->errors()->all(), 400); 20 return \Response::json($jsonError); 21 } 22 23 $data = request()->only('email','name','password'); 24 25 $user = User::create([ 26 'name' => $data['name'], 27 'email' => $data['email'], 28 'password' => bcrypt($data['password']) 29 ]); 30 31 $request->request->add([ 32 'username' => $data['email'], 33 'password' => $data['password'] 34 ]); 35 36 // Fire off the internal request. 37 $token = Request::create( 38 'oauth/token', 39 'POST' 40 ); 41 return \Route::dispatch($token); 42 } 43} 44

クライアントには、client_idとclient_secretを持たせておきます。

APIの叩き方は、以下です。

http://localhost/api/users [POST]

json

1{ 2 "name" : "name", 3 "email": "testuser@test.com", 4 "password": "testtest", 5 "grant_type": "password", 6 "client_id" : "{your_client_id}", 7 "client_secret": "{your_client_secret}", 8 "scope": "" 9}

すると、以下の内容がかえります。

json

1{ 2"token_type": "Bearer", 3"expires_in": 31535999, 4"access_token": "token", 5"refresh_token": "token" 6}

以上です。

投稿2018/07/19 03:37

Shichi7

総合スコア35

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問