Ionic 2使用Laravel 5.4作为后端登录

时间:2017-06-18 10:56:55

标签: php api typescript ionic2 laravel-5.4

我是离子2和laravel 5.4

的新手

我正在尝试创建用户的注册,登录和仪表板。 当我尝试创建登录时,它会显示tokenMismatchException。 现在,我怎样才能将csrf令牌从离子传递到laravel?

这是我在login.ts中的方法

login() {
  var headers = new Headers();
  headers.append("Accept", 'application/json');
  headers.append('Content-Type', 'application/json' );
  let options = new RequestOptions({ headers: headers });

  let data = {
    username: this.username,
    password: this.password,
    // can i pass token here to laravel?
  }

  this.http.post(this.apiUrl + '/api/login', data, options)
    .subscribe(res => {
      console.log(res);
     }, error => {
      console.log(error);// Error getting the data
  });
}

在laravel中的api.php里面的路线

Route::post('login','ApiController@login');

在我的api控制器中

public function login(Request $request) {
    echo json_encode($request->username);
    // how to create login auth here? from ionic 2?
}

问题1:tokenMismatchException

问题2:我不知道如何使用ionic 2和laravel 5.4作为后端创建登录。

这里有人可以给我关于离子2 + laravel 5.4登录auth的资源还是可以解决问题? 感谢并继续分享您的想法,以帮助程序员:)

2 个答案:

答案 0 :(得分:2)

我在这里找到了答案https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps

对于像我这样的初学者来说,这可能是一个很好的资源,因为它有一步一步的教程。

答案 1 :(得分:0)

我相信您可以做这样的事情。如果您使用的是离子本机,则需要返回一个唯一的令牌,该令牌将存储在您的应用程序状态中,以便您可以逐页浏览。

public function login(Request $request)
    {
        $this->validate($request,[
            'username' => 'required',
            'password' => 'required'
        ]);
        $user = User::where('username', $request->username)
            ->orWhere('email', $request->username)
            ->first();
        if(Hash::check($request->password, $user->password)){
            return $user->toJson(JSON_PRETTY_PRINT);
        }else{
            return "{error: 'true', message: 'wrong login credentials'}";
        }
    }