2

我知道我的问题并不具体,但我想讨论我的问题。

我想用 laravel 进行 Angular 社交登录,所以我使用的是 satelizer 社交登录。登录和注销工作正常,但是当我点击个人资料时,它显示错误。我不知道问题出在哪里。如果有人有解决方案,请帮助我。错误是在此处输入图像描述

我的代码是:-

角度路线

 $stateProvider.state('profile', {
        url: '/profile',
        templateUrl: 'partials/profile.html',
        controller: 'ProfileCtrl',
        resolve: {
          loginRequired: loginRequired
        }
      });

配置文件控制器

angular.module('MyApp')
  .controller('ProfileCtrl', function($scope, $auth, toastr, Account) {

    $scope.getProfile = function() {
      Account.getProfile()
        .then(function(response) {
          $scope.user = response.data;
        })
        .catch(function(response) {
          toastr.error(response.data.message, response.status);
        });
    };
    $scope.getProfile();

账户服务

angular.module('MyApp')
  .factory('Account', function($http) {
    return {
      getProfile: function() {
        return $http.get('/satellizer/examples/server/php/public/api/me');
      },
      updateProfile: function(profileData) {
        return $http.put('/satellizer/examples/server/php/public/api/me', profileData);
      }
    };
  });

Laravel 路由 // API 路由。

Route::get('api/me', ['middleware' => 'auth', 'uses' => 'UserController@getUser']);

Laravel 控制器

<?php 
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Config;
use Firebase\JWT\JWT;
use App\User;

class UserController extends Controller {

    /**
     * Generate JSON Web Token.
     */
    protected function createToken($user)
    {

        $payload = [
            'sub' => $user->id,
            'iat' => time(),
            'exp' => time() + (2 * 7 * 24 * 60 * 60)
        ];
        return JWT::encode($payload, Config::get('app.token_secret'));
    }

    /**
     * Get signed in user's profile.
     */
    public function getUser(Request $request)
    {

        $user = User::find($request['user']['sub']);
        return $user;
    }
4

0 回答 0