Laravel APIを使用してモバイルアプリケーションを作成していますが、Laravel 5.3(?)ではアプリケーションのOAuth2 /検証を処理する「Passport」という名前が追加されています。その試みを与えるだろう。私は、Laravel Passportのドキュメント(https://laravel.com/docs/5.4/passport)を使ってセットアップを完了した後、それを動作させる方法について、いくつかの説明を続けました。今これは私がオフに基づいて、他のチュートリアルを作ってみた何のためのコード/ SOユーザー/のOAuth2クライアントモバイルアプリケーションでLaravel Passportを使用する
class OAuthController extends Controller
{
public function registerUser(Request $request){
$email = $request->email;
$password = $request->password;
$name = $request->name;
$user = User::create([
'name' => $name,
'email' => $email,
'password' => bcrypt($password)
]);
$oAuthClient = new OAuthClient();
$oAuthClient->user_id = $user->id;
$oAuthClient->id = $user->email;
$oAuthClient->name = $user->name;
$oAuthClient->secret = base64_encode(hash_hmac('sha256',$password, 'secret', true));
$oAuthClient->password_client=1;
$oAuthClient->redirect = '';
$oAuthClient->personal_access_client = 0;
$oAuthClient->revoked = 0;
$oAuthClient->save();
return response()->json(['message', 'User successfully created']);
}
}
2)私が作ったモデルを作成するための記事
1)コントローラがあります)
use Illuminate\Database\Eloquent\Model;
class OAuthClient extends Model
{
protected $table = 'oauth_clients';
}
3 oauth_clientsテーブルを参照するために、私は、ユーザーの電子メールの整数をインクリメントからoauth_clientsテーブルの主キーを変更しました。私は、ユーザー/ oauth_clientを作成したら、私は基本的にはちょうどこのSO記事 Laravel Passport Password Grant Tokens: own mobile app
4)に従っていました、パラメータ
でのOAuth /トークンにPOSTリクエストのw/POSTMANを通じてトークンを取得事は、これは私にとって本当に間違っていると感じています。 oauth_clientsにはuser_id列があります。したがって、oauth_clientトークンを取得しようとすると、ユーザーがポストリクエストをして関連するoauth_clientを取得できるはずです。 1.)を登録し、新しいユーザー
2)ユーザーを登録する場合は、oauth_clientを作成して次のように私は私のモバイルアプリのユーザー認証のためのパスポートを使用することができるはず方法については、理にかなっているものを私の心に
ユーザーの電子メール/ PWが確認された後、ログインには、そのユーザ
3)のために、oauth_clientを探し、その後
4.トークンoath_clientを取得)検証し、認証に今後APIへの要求にoauth_clientトークンを使用しますユーザー。
これは正しいと思いますか?私はそれが明らかだと確信していますが、このプロセスは私が混乱しているので、任意の指針は非常に高く評価されるでしょう。