0

laravel のデフォルト登録 (auth) を使用する Web アプリを作成しました。Taylor チュートリアルのパスポート oauth2 クライアント アクセス トークンをテストしました。私のWebアプリはUIにangular jsを使用し、バックエンドにlaravelを使用しているため、ユーザー作成リクエストがangularから送信されたときにユーザーを作成し、グローバルアクセストークンを作成してangularへの応答でそれを提供する必要があります。リクエストの認証に使用します。

実際には、Web アプリに oauth2 認証を実装したいと考えていますが、これまでに多くのことを検索しましたが、有用なステップバイステップのチュートリアルが見つかりませんでした。

誰でも私を助けることができますか?

参考までに、パスポートを有効にしてlaravel 5.3を使用し、フロントエンドにangular js 1.5を使用しています。

4

3 に答える 3

1

ここでJWTトークンベースの認証を使用して、jwtについて学ぶことができます https://jwt.io/

于 2016-11-10T05:43:23.783 に答える
0

私はこれを解決しました。ログインと登録用にlaravel認証をカスタマイズし、サーバーにリクエストを送信してユーザー登録またはログイン用のアクセストークンを作成するメソッドを作成しました。パスポートを設定し、テイラーがチュートリアルで行ったようにテストしました。次に、メソッドの応答を次のようAuthenticatesUsers.phpに変更しました。sendloginResponse

protected function sendLoginResponse(Request $request)
    {
        isset($request->token) ? $token = $request->token : $token = null;//Check if login request contain token

        $request->session()->regenerate();

        $this->clearLoginAttempts($request);

        return $this->authenticated($request, $this->guard()->user())
            ? $this->StatusCode($token,$this->credentials($request),$status=false) : $this->StatusCode($token,$this->credentials($request),$status=true);

    }

そして、このメソッドを追加して、アクセス トークンを要求し、json 応答として送信しました。

public function StatusCode($token,$user,$status){

        if( $token != null && $token != ''){
            return ($status == true) ? response()->json(GetToken($user),200) : response()->json(['Message' => 'Failed to log in'],403);

        }

        function GetToken($userobject)
        {
            $http = new Client;

            $response = $http->post('http://localhost/iranAd/public/oauth/token', [
                'form_params' => [
                    'grant_type' => 'password',
                    'client_id' => '1',
                    'client_secret' => 'xKqNbzcXyjySg20nVuVLw5nk5PAMhFQOQwRTeTjd',
                    'username' => $userobject['email'],
                    'password' => $userobject['password'],
                    'scope' => '',
                ],
            ]);

            return json_decode((string) $response->getBody(), true);
        }

        function RefreshToken($token,$userobject)
        {
            $http = new Client;

            $response = $http->post('http://localhost/iranAd/public/oauth/token', [
                'form_params' => [
                    'grant_type' => 'refresh_token',
                    'refresh_token' => 'refresh_token',
                    'client_id' => '1',
                    'client_secret' => 'xKqNbzcXyjySg20nVuVLw5nk5PAMhFQOQwRTeTjd',
                    'username' => $userobject['email'],
                    'password' => $userobject['password'],
                    'scope' => '',
                ],
            ]);

            return json_decode((string) $response->getBody(), true);
        }

            return ($status == true) ? response()->json(GetToken($user),200) : response()->json(['Message' => 'Failed to log in'],403);

    }

ユーザー登録も同様です。

于 2016-11-23T10:33:08.247 に答える
0

この投稿の目的は、(すでに回答されているように)回答することではなく、最終的にトピックに関する詳細情報を必要とする他の読者に詳細情報を提供することです.

これは、この問題に関する非常に役立つチュートリアルです。Implementing Vue.js 2.0 and Laravel 5.3 with CORS problem solution この 1 つと 2 つの次のクリップを確認してください。

これのいくつかは、ここで短い形式で見つけることができます

于 2017-01-24T02:01:18.983 に答える