我知道我的问题并不具体,但我想讨论我的问题。
我想用 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;
}