Skip to content

Commit

Permalink
Add API key to profile output
Browse files Browse the repository at this point in the history
  • Loading branch information
cdubz committed Nov 9, 2021
1 parent 0f2d054 commit 3f04f14
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 13 deletions.
11 changes: 11 additions & 0 deletions .phpstorm.meta.php
Expand Up @@ -213,6 +213,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -428,6 +429,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -643,6 +645,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -858,6 +861,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -1073,6 +1077,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -1288,6 +1293,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -1503,6 +1509,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -1718,6 +1725,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -1933,6 +1941,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -2148,6 +2157,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down Expand Up @@ -2363,6 +2373,7 @@
'queue.worker' => \Illuminate\Queue\Worker::class,
'redirect' => \Illuminate\Routing\Redirector::class,
'redis' => \Illuminate\Redis\RedisManager::class,
'redis.connection' => \Illuminate\Redis\Connections\PhpRedisConnection::class,
'router' => \Illuminate\Routing\Router::class,
'session' => \Illuminate\Session\SessionManager::class,
'session.store' => \Illuminate\Session\Store::class,
Expand Down
17 changes: 12 additions & 5 deletions app/Models/User.php
Expand Up @@ -10,7 +10,7 @@
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Carbon;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
Expand Down Expand Up @@ -56,6 +56,8 @@
* @property \Illuminate\Support\Collection|null $meals
* @method static \Illuminate\Database\Eloquent\Builder|User whereMeals($value)
* @property-read Collection $meals_enabled
* @property string|null $api_token
* @method static \Illuminate\Database\Eloquent\Builder|User whereApiToken($value)
*/
final class User extends Authenticatable implements HasMedia
{
Expand All @@ -71,24 +73,29 @@ protected static function booted(): void {
static::creating(function (User $user) {
// Set default meals configuration.
$user->meals = User::getDefaultMeals();

// Set default API token.
$user->api_token = Str::random(32);
});
}

/**
* @inheritdoc
*/
protected $fillable = [
'username',
'password',
'name',
'meals',
'admin',
'api_token',
'meals',
'name',
'password',
'username',
];

/**
* @inheritdoc
*/
protected $hidden = [
'api_token',
'password',
'remember_token',
];
Expand Down
@@ -0,0 +1,32 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddApiTokenToUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->char('api_token', 32)->unique()->nullable()->after('password');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('api_token');
});
}
}
7 changes: 5 additions & 2 deletions resources/views/profiles/show.blade.php
Expand Up @@ -18,7 +18,10 @@
</a>
</div>
@endif
<div class="mt-2 text-gray-500">
{{ $user->name }}
<div class="mt-2">
<p class="mt-2">{{ $user->name }}</p>
@if($user->id === Auth::user()->id)
<p class="mt-2"><strong>API key</strong>: {{ $user->api_token }}</p>
@endif
</div>
</x-app-layout>
7 changes: 1 addition & 6 deletions routes/api.php
Expand Up @@ -4,14 +4,9 @@
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| See: https://laravel-json-api.readthedocs.io/en/latest/
|
| TODO: Get auth middleware working...
|
*/

JsonApi::register('v1')->middleware('auth')->routes(function ($api) {
JsonApi::register('v1')->middleware('auth:api,web')->routes(function ($api) {
$api->resource('foods')->relationships(function ($relations) {
$relations->hasMany('tags')->readOnly();
})->readOnly();
Expand Down

0 comments on commit 3f04f14

Please sign in to comment.