메인 콘텐츠로 건너뛰기
이 가이드는 간단한 counter 프로그램을 예제로 사용해 Session Keys를 Solana Anchor 프로그램에 통합하는 방법을 설명합니다.

설치

먼저 Cargo.tomlsession-keys crate를 추가합니다.
또는 cargo 명령을 사용합니다.

사용법

  1. session-keys 가져오기:
이 줄은 session-keys crate에서 필요한 구성 요소를 가져옵니다.
  1. Session trait 파생하기:
Increment 구조체에 Session trait를 파생하면 session 기능이 활성화됩니다.
  1. session token 계정 정의하기:
여기서는 선택적 SessionToken 계정을 정의하고 session의 signer와 authority를 지정합니다.
  • session_token.authority: session token을 만든 계정
  • counter.authority.key(): counter를 만든 계정 authority 조건은 session token이 counter와 동일한 사용자가 만들었는지 확인합니다.
  1. session_auth_or 매크로 사용하기:
이 매크로는 increment 함수에 적용됩니다. 유효한 session token이 있는지 확인하고, 없으면 signer가 counter의 authority인지 검증합니다.

전체 예제

아래는 session keys를 사용하는 counter 프로그램의 전체 예제입니다. 각 사용자는 자신의 counter 계정을 가지므로, session keys로 인증이 어떻게 이루어지는지 보여 줄 수 있습니다.

테스트

아래는 session keys로 counter 프로그램을 테스트하는 예제입니다.
이 테스트 스위트는 counter 초기화, session 없이 increment 수행, session token 생성, 그리고 session token을 사용한 increment를 보여 줍니다. 마지막 테스트는 counter 소유자만 increment할 수 있음을 보장하므로 중요합니다.

로컬에서 테스트하기

solana-test-validator로 로컬 테스트를 하려면 session keys program과 account를 함께 지정해 시작해야 합니다.
  1. Solana CLI가 DEVNET을 가리키는지 확인합니다:
  1. Session Keys program을 로컬 파일로 dump 합니다:
  1. session keys program과 account를 포함해 solana-test-validator를 시작합니다:
-r - ledger를 genesis로 재설정 -ud - Solana JSON RPC의 URL 또는 moniker (-ud = DEVNET) --clone - cluster에서 account를 복사 --bpf-program - genesis 설정에 SBF program을 추가