2016-03-31 25 views
1

Birkaç REST API'sı için temel olarak bir sarıcı olacak bir Python komut satırı aracı tasarlıyorum. Genel fikir, kullanıcının terminali terk etmek zorunda kalmadan uzaktan değişiklikler yapabilmesidir.Komut satırı aracı için önbellek kullanıcı uzak kimlik bilgileri

Gerçekten emin olmadığım tek ayrıntı, kullanıcı kimlik bilgilerini önbelleğe almalarıdır; böylece, her uzaktan aramayı yaptıklarında username ve password girmek zorunda kalmazlar. Aracı kullanmıyorken, kullanıcı kimlik bilgilerini uzun süre açıkta bırakmaktan dolayı endişeleniyorum. Bir dosya yazmadan ve belirli bir süre geçtikten sonra dosyayı yok eden bir iş parçacığı oluşturmadan bunu yapmanın tipik bir yolu var mı?

cevap

1

ben pypi gelen keyring paketini kullanmanızı tavsiye, o zaman bazı yardımcı fonksiyonları ile tamamlamayı edebilirsiniz: sonra

SERVICE_NAME = 'confluence_api' 


def get_login_cli(username = None, prompt = False): 
    ''' 
    Get the password for the username out of the keyring. If the password 
    isn't found in the keyring, ask for it from the command line. 
    ''' 

    disp_username = False 

    if username is None or prompt: 
     username = getpass.getuser() 
     disp_username = True 

    passwd = keyring.get_password(SERVICE_NAME, username) 

    if passwd is None or prompt: 

     if disp_username: 
      print 'login: %s' % username 

     passwd = getpass.getpass() 
     set_password(username, passwd) 

    return (username, passwd) 


def set_password(username, passwd): 
    ''' 
    Writes the password to the keyring. 
    ''' 

    keyring.set_password(SERVICE_NAME, username, passwd) 

Ve çalışma zamanı komut şöyle diyebilirsiniz:

username, passwd = get_login_cli(username, **kwargs) 

print("username = %s" % (username)) 

Oturum açtıktan sonra parola önbelleğe alınır ve siz ikinci kez istenmez. keyring, kimlik bilgilerini depolamak için yerel platformun anahtarlığını kullanır ve N zaman geçtikten sonra tekrar istenir, ancak 'un ne olduğunu öğrenmek için keyring üzerindeki belgeleri okumanız gerekir.

İlgili konular