Menghos Kunci Peribadi dalam Enjin Apl Google
Menggunakan perpustakaan "github.com/dgrijalva/jwt-go" untuk mencipta token web JSON melibatkan penggunaan kunci persendirian. Walaupun kunci ini boleh digunakan dengan mudah apabila mengehos secara tempatan, penggunaan ke Google App Engine (GAE) memberikan cabaran kerana kekurangan akses sistem fail.
Pilihan untuk Storan Kunci
Apabila mengehos pada GAE, terdapat dua pilihan utama untuk menyimpan kunci persendirian:
Storan Fail Statik
Untuk menyimpan peribadi kunci sebagai fail statik dalam GAE, ia boleh diletakkan dalam direktori akar apl dan dirujuk menggunakan laluan relatif. Contohnya, kunci yang terletak di key/my_key.txt boleh diakses sebagai key/my_key.txt.
Storan Simpanan Data
Untuk menyimpan kunci peribadi dalam Datastore , KeyEntity boleh dibuat:
import ( "context" "cloud.google.com/go/datastore" ) type KeyEntity struct { Key string } func StoreKey(ctx context.Context) error { client, err := datastore.NewClient(ctx, projectID) if err != nil { return err } _, err = client.Put(ctx, datastore.NameKey("Key", "key", nil), &KeyEntity{Key: privateKey}) return err }
Kekunci yang disimpan kemudiannya boleh diakses melalui fungsi GetKey:
func GetKey(ctx context.Context) (string, error) { client, err := datastore.NewClient(ctx, projectID) if err != nil { return "", err } var keyEntity KeyEntity if err = client.Get(ctx, datastore.NameKey("Key", "key", nil), &keyEntity); err != nil { return "", err } return keyEntity.Key, nil }
Nota: Fail statik tidak tersedia kepada kod apl. Oleh itu, merujuk kunci peribadi yang disimpan sebagai fail statik memerlukan konfigurasi yang teliti untuk memastikan fail itu tersedia kepada apl.
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Kunci Peribadi dengan Selamat untuk Penjanaan JWT dalam Enjin Aplikasi Google?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!