TYEYDY

快樂生活 | 身體健康

0%

記錄一些 Postman 的使用心得,這次是關於 Postman 的變數設定。

變數設定

設定 當下時間 timestamp 變數

  • 單位:毫秒

example 1730950883296

1
pm.variables.set("timestamp", Date.now());
閱讀全文 »

緣由

由於參加了 2024 Hello World Dev Conference的課程,其中一堂工作坊是由 柯仁傑(David Ko) 講師帶團隊課程,回顧且自己做一些筆記當作紀錄

心理安全感的來源

作者

艾米·埃德蒙森 Amy C. Edmondson 是美國領導力、團隊合作和組織學習方面的學者。她目前是哈佛商學院領導力教授

書籍

心理安全感的力量: 別讓沉默扼殺了你和團隊的未來!
作者:艾美.艾德蒙森

什麼是心理安全感

能夠跟一個人訴說任何事情,不管是好或壞,也不會受到情緒化的責罵與譴責,並不代表你一直感覺舒服或是工作舒適爽缺,而是可以輕鬆地談論讓你不舒服的事情

閱讀全文 »

登入驗證時的錯誤訊息

1
This password does not use the Bcrypt algorithm.(0)

原因:

由於舊的資料表的雜湊方式為 md5,但同時存在新的資料表使用bcrypt雜湊,所以在驗證時會出現錯誤。

閱讀全文 »

一般情況下

驗證的方法

  • Controller
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $validation = $request->validated();

    $credentials = [
    'email' => $validation['phone'],
    'password' => $validation['password'],
    ];

    if (!Auth::guard('member')->attempt($credentials)) {
    throw AuthorizeException::loginFail();
    }
閱讀全文 »

Laravel 11 有異動許多地方,RouteServiceProvider、AuthServiceProvider… 都統一在AppServiceProvider中處理

新增一個會員的驗證機制來作為範例

  • config/auth.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    'guards' => [
    'web' => [
    'driver' => 'session',
    'provider' => 'users',
    ],
    'member' => [
    'driver' => 'session',
    'provider' => 'members',
    ],
    ],

    'providers' => [
    'users' => [
    'driver' => 'eloquent',
    'model' => env('AUTH_MODEL', App\Models\User::class),
    ],

    'members' => [
    'driver' => 'member',
    'model' => App\Models\Member::class,
    ],
    ],
閱讀全文 »

Laravel Test 單一測試使用多個使用者

遇到的問題

測試新增兩位會員,使用Laravel Sanctum 驗證方式,測試取得會員資料

單獨一個使用者測試沒有問題,但兩位使用者會驗證失敗,會是相同的會員

第二筆回傳的會員資料會是第一筆會員資料

失敗的測試程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public function test_profile() {
// 建立會員
$member1 = Member::factory()->create();
$token = $member1->createToken('test')->plainTextToken;
$header1['Authorization'] = 'Bearer ' . $token;

$member2 = Member::factory()->create();
$token = $member2->createToken('test')->plainTextToken;
$header2['Authorization'] = 'Bearer ' . $token;

// 取得會員資料
$res = $this->json('get', route('member.profile'), [], $header1)
->assertOk()
->assertJson([
'code' => '0',
]);
$content = json_decode($res->getContent(), true);

// testing fail
$this->assertEquals($member->phone, $content['data']['profile']['phone']);

$res = $this->json('get', route('member.profile'), [], $header1)
->assertOk()
->assertJson([
'code' => '0',
]);
$content = json_decode($res->getContent(), true);

// testing pass
$this->assertEquals($member->phone, $content['data']['profile']['phone']);
}
閱讀全文 »

問題

安裝Linux php7.4時,發現Ubuntu 22.04不支援php7.4

1
$ apt-get install php7.4-fpm -y

Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
Package php7.4 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘php7.4’ has no installation candidate

解決方法

安裝舊版的套件包

1
2
$ add-apt-repository ppa:ondrej/php && apt update -y
$ update-alternatives --config php

參考網站: