Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何通过身份验证访问laravel API_Angularjs_Authentication_Laravel - Fatal编程技术网

Angularjs 如何通过身份验证访问laravel API

Angularjs 如何通过身份验证访问laravel API,angularjs,authentication,laravel,Angularjs,Authentication,Laravel,为了学习API和AngularJS,我想我可以使用laravel(我以前从未使用过)和AngularJS作为前端创建一个博客的后端。我想要的后端是一个restful API,允许在未经身份验证的情况下阅读日志,如果经过身份验证,则可以使用CRUD 1/我已经能够使用我的表设置我的数据库: USER PAGES POSTS CATEGORIES ---- ---- ---- ---- id id id id name

为了学习API和AngularJS,我想我可以使用laravel(我以前从未使用过)和AngularJS作为前端创建一个博客的后端。我想要的后端是一个restful API,允许在未经身份验证的情况下阅读日志,如果经过身份验证,则可以使用CRUD

1/我已经能够使用我的表设置我的数据库:

USER     PAGES   POSTS     CATEGORIES
----     ----    ----      ----
id       id      id        id
name     name    name      name
password content content
mail             category
role             author
                 createdAt
                 updatedAt
2/控制器、型号和路线看起来不错:

UserController.php:

<?php

  class UserController extends \BaseController {
    public function index($id = null) {}
    public function store($id = null) {}
    public function update($id) {}
    public function destroy($id) {}
  }
  use Illuminate\Auth\UserTrait;
  use Illuminate\Auth\UserInterface;
  use Illuminate\Auth\Reminders\RemindableTrait;
  use Illuminate\Auth\Reminders\RemindableInterface;

  class User extends Eloquent implements UserInterface, RemindableInterface {
    use UserTrait, RemindableTrait;
    public $timestamps = false;
    protected $table = 'users';
    protected $hidden = array('password', 'remember_token');

    public function posts() {
      return $this->has_many('Post');
    }
  }
routes.php:

[...]
Route::get('/authtest', array('before' => 'auth.basic', function() {
  return View::make('hello');
}));

Route::post('User', [
  'as' => 'User/store',
  'uses' => 'UserController@index']);
Route::get('User', [
  'as' => 'User/index',
  'uses' => 'UserController@store']);
Route::get('User/{id}', [
  'as' => 'User/index',
  'uses' => 'UserController@store']);
Route::put('User', [
  'as' => 'User/update',
  'uses' => 'UserController@update']);
Route::delete('User/{id}', [
  'as' => 'User/destroy',
  'uses' => 'UserController@destroy']);
[...]
问题是:

假设我想以admin:admin身份登录到API以添加帖子。我该怎么做? 用户如何向我的API发送凭据?
使用curl,我可以键入:
curl--user-user:password testserver/authtest
,它与
auth.basic
路由参数一起工作。但是我如何在JS或其他语言中做到这一点?我如何存储这些信息,以便用户不必每次都发送密码?

这里有一个链接,指向使用Angular发送基本身份验证的实现:

至于用户名和密码,您可以尝试将它们存储在加密的cookie中——尽管我真的不建议这样做。我宁愿使用API键

以下是我在Laravel制作的一个库,用于使用API键,目前正在多个Angular项目中实现: