lg23

668 经验值

群主,我没有项目经验,对一些工具和一些专业常识认识还不够。我在github上发布了一个项目,如果你时间可以到上面看一下,这样你也比较好全面了解我这个项目在这个api接口具体在哪出了问题。
github 地址:
https://github.com/liugang23/tb100

···

server {
        listen 80; // 监听80端口, 默认站点
        #listen [::]:80 default_server; //  // IPV6 开启

        root /var/www/html;   // 配置网站站点目录

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name localhost;  // 域名

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                #try_files $uri $uri/ =404; //首页访问规则
                // 记得修改
                try_files $uri $uri/ /index.php?$query_string;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        // 开启这块注释,解析php文件
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        // 两种方式 : 1.监听 9000 端口, 2.sock 链接, 推荐使用 1
                fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
        #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }  //注意闭合哦! 
}

···

群主,这是我nginx的基本配置,您发的配置内容我看了下,有些位置的作用,不是很明白?

特别这一段
···

location ~ \.php$ {
                try_files $uri /index.php =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php7.1-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

···

在postman 中测试登录 http://www.tb.com/api/login 返回 token :
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOm51bGwsImlzcyI6Imh0dHA6XC9cL3d3dy50Yi5jb21cL2FwaVwvbG9naW4iLCJpYXQiOjE0ODkwNDc1MTEsImV4cCI6MTQ4OTA1MTExMSwibmJmIjoxNDg5MDQ3NTExLCJqdGkiOiJiNTJhM2I5MWE2OGJkNDU3NjY3MDkyZDMwMzgzN2ZjNCJ9.IZfpo7EgV96gFuyOGWqXXCWPwfsGRV6MvUyTUsDOwRE

然后通过:
http://www.tb.com/api/order?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOm51bGwsImlzcyI6Imh0dHA6XC9cL3d3dy50Yi5jb21cL2FwaVwvbG9naW4iLCJpYXQiOjE0ODkwNDc1MTEsImV4cCI6MTQ4OTA1MTExMSwibmJmIjoxNDg5MDQ3NTExLCJqdGkiOiJiNTJhM2I5MWE2OGJkNDU3NjY3MDkyZDMwMzgzN2ZjNCJ9.IZfpo7EgV96gFuyOGWqXXCWPwfsGRV6MvUyTUsDOwRE

结果返回: "error": "user_not_found"

群主你好!我的开发环境大致如下:
VirtualBox + Vagrant + Ubuntu14.04 + php7.0 + nginx 在 windows 8 系统下搭建的一个虚拟开发环境。
项目开发,前端用的 vue2.0 后端用的 laravel 5.3
之前用 dingo/api 1.0.0-beta8 和 tymon/jwt-auth 1.0.0-beta.2 来开发api,但一直获取到 token,但一直无法对 token 进行解码或提示 无效令牌 等。
还请群主给予指点!谢谢

"error": "token_not_provided"
token 获取到了,但是在postman里测试得到了上面的结果,之前也是这种情况,折磨了我好几天

第一次发代码,没注意到是这个效果

刚才的链接中 Authenticatable 它是用于验证的
但 Notifiable 它是用来干嘛的呢?

修改后,的确问题解决了
但不知道会不会影响其它位置对这个model的调用

<?php
namespace App\Model;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{

use Notifiable;

/**
  • 白名单 $fillable 属性指定了哪些字段支持批量赋值

  • @var array
    */

    protected $fillable = ['uid', 'username', 'tel', 'password', 'pic', 'status', 'addtime'];
    /**
  • 模型所使用的数据库表

  • @var string
    */

    protected $table = 'data_users';
    /** 
  • 自定义主键
    */

    protected $primaryKey = 'uid';
    
    /**
  • 关闭 递增
    */

    public $incrementing = false;
    /**
  • 关闭 创建时间 与 更新时间的自动维护
    */

    public $timestamps = false;
    
    /** 
  • 转换成数组或 JSON 时隐藏属性

  • 查询用户的时候,不暴露密码

  • @var array
    */

    protected $hidden = ['password', 'remember_token'];
    
    /**
  • jwt 默认密码字段 password

  • 修改密码字段
    */

    public function getAuthPassword()
    {

    return $this->password;

    }
    
    /**
  • 获取用户的唯一标识符

  • jwt 需要实现的方法
    */

    // public function getJWTIdentifier()
    // {
    //     return $this->getKey();// 模型的方法
    // }
    
    // jwt 需要实现的方法
    // public function getJWTCustomClaims()
    // {
    //     return [];
    // }
    
    /**
  • 用户-订单一对多关联
    */

    public function hasUserOrder()
    {

    return $this->hasMany('App\Model\Order', 'uid', 'uid');

    }
    
    /**
  • 用户-购物车一对多关联
    */

    public function hasUserCart()
    {

    return $this->hasMany('App\Model\Cart', 'uid', 'uid');

    }
    

}

这是我新的model 下的 user 类,这样修改后,会不会影响我其它位置对这个model的调用呢?

laravel 5.3 php7.0 ubuntn14.04

我的laravel 5.3 目前关于model做了如下配置
config/auth.php 修改了默认

'providers' => [

    'users' => [
        'driver' => 'eloquent',
        'model' => App\Model\User::class,
        'table' => 'data_users',
    ],

jwt.php 修改如下:
指定用户模型的完整命名空间

*/

'user' => 'App\Model\User',

报错提示:
[2017-03-09 14:55:12] local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Argument 1 passed to Illuminate\Auth\EloquentUserProvider::validateCredentials() must implement interface Illuminate\Contracts\Auth\Authenticatable, instance of App\Model\User given, called in /vagrant/tb100/admin/vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php on line 385 in /vagrant/tb100/admin/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php:114