Google App Engine에서 개인 키 호스팅
"github.com/dgrijalva/jwt-go" 라이브러리를 사용하여 JSON 웹 토큰 생성 개인 키 사용이 포함됩니다. 이 키는 로컬에서 호스팅할 때 쉽게 활용할 수 있지만 Google App Engine(GAE)에 배포하면 파일 시스템 액세스 부족으로 인해 문제가 발생합니다.
키 저장소 옵션
GAE에서 호스팅하는 경우 개인 키를 저장하는 두 가지 기본 옵션이 있습니다.
정적 파일 저장소
개인 키를 저장하려면 키를 GAE의 정적 파일로 사용하면 앱의 루트 디렉터리에 배치하고 상대 경로를 사용하여 참조할 수 있습니다. 예를 들어 key/my_key.txt에 있는 키는 key/my_key.txt로 액세스할 수 있습니다.
데이터 저장소 저장소
데이터 저장소에 개인 키를 저장하려면 , KeyEntity를 생성할 수 있습니다.
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 }
그런 다음 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 }
참고: 정적 파일은 사용할 수 없습니다. 앱의 코드에. 따라서 정적 파일로 저장된 개인 키를 참조하려면 해당 파일을 앱에서 사용할 수 있도록 주의 깊게 구성해야 합니다.
위 내용은 Google App Engine에서 JWT 생성을 위한 개인 키를 안전하게 저장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!