{"id":9079,"date":"2020-09-25T10:00:37","date_gmt":"2020-09-25T01:00:37","guid":{"rendered":"https:\/\/www.gigas-jp.com\/appnews\/?p=9079"},"modified":"2020-09-24T16:11:59","modified_gmt":"2020-09-24T07:11:59","slug":"laravel-passport%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%9fbearer-token%e8%aa%8d%e8%a8%bc2","status":"publish","type":"post","link":"https:\/\/www.gigas-jp.com\/appnews\/archives\/9079","title":{"rendered":"[Laravel] Passport\u3092\u4f7f\u7528\u3057\u305fBearer token\u8a8d\u8a3c[2]"},"content":{"rendered":"\n<p>PHP\u306eLaravel\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306ePassport\u3092\u4f7f\u7528\u3057\u305fBearer token\u8a8d\u8a3c\u306e\u65b9\u6cd5\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3044\u305f\u3057\u307e\u3059\u3002\u672c\u8a18\u4e8b\u306f\u524d\u56de\u306e\u300c<a href=\"\/appnews\/archives\/9009\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"[Laravel] Passport\u3092\u4f7f\u7528\u3057\u305fBearer token\u8a8d\u8a3c[1] (\u65b0\u3057\u3044\u30bf\u30d6\u3067\u958b\u304f)\">[Laravel] Passport\u3092\u4f7f\u7528\u3057\u305fBearer token\u8a8d\u8a3c[1]<\/a>\u300d\u306e\u7d9a\u304d\u3068\u306a\u308a\u307e\u3059\u3002\u4eca\u56de\u306fPassport\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5\u304b\u3089Laravel\u6a19\u6e96\u306e\u8a8d\u8a3c\u6a5f\u80fd\u3092Passport\u306b\u5909\u66f4\u3059\u308b\u3068\u3053\u308d\u307e\u3067\u3092\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<!--more-->\n\n\n\n<h4>Passport\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h4>\n\n\n\n<p>Passport\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>composer require laravel\/passport<\/code><\/pre>\n\n\n\n<p>\u4e0b\u56f3\u306e\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u308c\u3070Passport\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u5b8c\u4e86\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"567\" height=\"211\" src=\"\/appnews\/wp-content\/uploads\/sites\/4\/2020\/09\/7.png\" alt=\"\" class=\"wp-image-9080\"\/><\/figure>\n\n\n\n<p>\u6b21\u306bPassport\u306e\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306b\u306foauth\u7cfb\u306e\u30c6\u30fc\u30d6\u30eb\u306e\u751f\u6210\u3082\u5fc5\u8981\u3067\u3059\u306e\u3067\u3001\u518d\u5ea6migrate\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php artisan migrate<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"780\" height=\"251\" src=\"\/appnews\/wp-content\/uploads\/sites\/4\/2020\/09\/8.png\" alt=\"\" class=\"wp-image-9081\"\/><\/figure>\n\n\n\n<p>\u4e0a\u56f3\u306e\u3088\u3046\u306boauth\u304b\u3089\u306f\u3058\u307e\u308b\u540d\u79f0\u306e\u30c6\u30fc\u30d6\u30eb\u304c\u751f\u6210\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4>Laravel\u6a19\u6e96\u306e\u8a8d\u8a3c\u6a5f\u80fd\u3092Passport\u306b\u5909\u66f4\u3059\u308b<\/h4>\n\n\n\n<p>\u4eca\u56de\u306fLaravel\u6a19\u6e96\u306eusers\u30c6\u30fc\u30d6\u30eb\u3092Passport\u8a8d\u8a3c\u306b\u4f7f\u7528\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u306e\u3067\u3001\u300capp\/User.php\u300d\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u7de8\u96c6\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace App;\n\nuse Illuminate\\Contracts\\Auth\\MustVerifyEmail;\nuse Illuminate\\Foundation\\Auth\\User as Authenticatable;\nuse Illuminate\\Notifications\\Notifiable;\nuse Laravel\\Passport\\HasApiTokens;\n\nclass User extends Authenticatable\n{\n    use Notifiable;\n    use HasApiTokens;\n\n    \/**\n     * The attributes that are mass assignable.\n     *\n     * @var array\n     *\/\n    protected $fillable = [\n        'name', 'email', 'password',\n    ];\n\n    \/**\n     * The attributes that should be hidden for arrays.\n     *\n     * @var array\n     *\/\n    protected $hidden = [\n        'password', 'remember_token',\n    ];\n\n    \/**\n     * The attributes that should be cast to native types.\n     *\n     * @var array\n     *\/\n    protected $casts = [\n        'email_verified_at' => 'datetime',\n    ];\n}<\/code><\/pre>\n\n\n\n<p>\u6b21\u306b\u300capp\/Providers\/AuthServiceProvider.php\u300d\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u7de8\u96c6\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider as ServiceProvider;\nuse Illuminate\\Support\\Facades\\Gate;\nuse Laravel\\Passport\\Passport;\n\nclass AuthServiceProvider extends ServiceProvider\n{\n    \/**\n     * The policy mappings for the application.\n     *\n     * @var array\n     *\/\n    protected $policies = [\n        \/\/ 'App\\Model' => 'App\\Policies\\ModelPolicy',\n    ];\n\n    \/**\n     * Register any authentication \/ authorization services.\n     *\n     * @return void\n     *\/\n    public function boot()\n    {\n        $this->registerPolicies();\n\n        \/\/\n        Passport::routes();\n    }\n}<\/code><\/pre>\n\n\n\n<p>\u6b21\u306b\u300cconfig\/auth.php\u300d\u306e\u7de8\u96c6\u3092\u304a\u3053\u306a\u3044\u307e\u3059\u3002\u6a19\u6e96\u306e\u72b6\u614b\u3067\u306f\u300capi\u300d\u306e\u300cdriver\u300d\u306f\u300ctoken\u300d\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u305d\u306e\u90e8\u5206\u3092\u300cpassport\u300d\u306b\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\n\/* \u4e2d\u7565 *\/\n\n    'guards' => [\n        'web' => [\n            'driver' => 'session',\n            'provider' => 'users',\n        ],\n\n        'api' => [\n            \/\/'driver' => 'token',\n            'driver' => 'passport',\n            'provider' => 'users',\n            'hash' => false,\n        ],\n    ],\n<\/code><\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u3067\u3001Laravel\u6a19\u6e96\u306e\u8a8d\u8a3c\u6a5f\u80fd\u3092Passport\u306b\u5909\u66f4\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u6b21\u56de\u306fBearer token\u3092\u4f7f\u7528\u3057\u305f\u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3c\u306b\u3064\u3044\u3066\u306e\u8aac\u660e\u3092\u3044\u305f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u91d1\u66dc\u65e5\u62c5\u5f53: nishida<\/p>\n<div class='wp_social_bookmarking_light'>\n            <div class=\"wsbl_google_plus_one\"><g:plusone size=\"medium\" annotation=\"none\" href=\"https:\/\/www.gigas-jp.com\/appnews\/archives\/9079\" ><\/g:plusone><\/div>\n            <div class=\"wsbl_hatena_button\"><a href=\"\/\/b.hatena.ne.jp\/entry\/https:\/\/www.gigas-jp.com\/appnews\/archives\/9079\" class=\"hatena-bookmark-button\" data-hatena-bookmark-title=\"[Laravel] Passport\u3092\u4f7f\u7528\u3057\u305fBearer token\u8a8d\u8a3c[2]\" data-hatena-bookmark-layout=\"standard\" title=\"\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\"> <img src=\"\/\/b.hatena.ne.jp\/images\/entry-button\/button-only@2x.png\" alt=\"\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0\" width=\"20\" height=\"20\" style=\"border: none;\" \/><\/a><script type=\"text\/javascript\" src=\"\/\/b.hatena.ne.jp\/js\/bookmark_button.js\" charset=\"utf-8\" async=\"async\"><\/script><\/div>\n            <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"https:\/\/www.gigas-jp.com\/appnews\/archives\/9079\" data-text=\"[Laravel] Passport\u3092\u4f7f\u7528\u3057\u305fBearer token\u8a8d\u8a3c[2]\" data-via=\"GIGASJAPAN_APPS\" data-lang=\"ja\">Tweet<\/a><\/div>\n            <div class=\"wsbl_facebook_like\"><div id=\"fb-root\"><\/div><fb:like href=\"https:\/\/www.gigas-jp.com\/appnews\/archives\/9079\" layout=\"button_count\" action=\"like\" width=\"100\" share=\"false\" show_faces=\"false\" ><\/fb:like><\/div>\n            <div class=\"wsbl_facebook_send\"><div id=\"fb-root\"><\/div><fb:send href=\"https:\/\/www.gigas-jp.com\/appnews\/archives\/9079\" colorscheme=\"light\" ><\/fb:send><\/div>\n    <\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n","protected":false},"excerpt":{"rendered":"<p>PHP\u306eLaravel\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306ePassport\u3092\u4f7f\u7528\u3057\u305fBearer token\u8a8d\u8a3c\u306e\u65b9\u6cd5\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3044\u305f\u3057\u307e\u3059\u3002\u672c\u8a18\u4e8b\u306f\u524d\u56de\u306e\u300c[Laravel] Passport\u3092\u4f7f\u7528\u3057\u305fBearer token\u8a8d\u8a3c[1]\u300d [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[100],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/posts\/9079"}],"collection":[{"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/comments?post=9079"}],"version-history":[{"count":5,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/posts\/9079\/revisions"}],"predecessor-version":[{"id":9090,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/posts\/9079\/revisions\/9090"}],"wp:attachment":[{"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/media?parent=9079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/categories?post=9079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gigas-jp.com\/appnews\/wp-json\/wp\/v2\/tags?post=9079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}