2011-05-23 12 views
25

मुझे RGoogleDocs पसंद है और इसका बहुत उपयोग करें। हालांकि, मुझे हर समय अपना पासवर्ड दर्ज करना पसंद नहीं है। जाहिर है, मैं सिर्फ आर स्क्रिप्ट में पासवर्ड टाइप कर सकता हूं और इसे फिर से दर्ज नहीं करना पड़ेगा। लेकिन यह व्यवहार्य नहीं है क्योंकि इसका मतलब है कि मेरा पासवर्ड मेरे हार्डड्राइव पर अनएन्क्रिप्टेड छोड़ा जाएगा। इसके अलावा मैं सहकर्मियों के साथ अपनी स्क्रिप्ट साझा करता हूं।RGoogleDocs का उपयोग करते समय मैं अपने पासवर्ड के संपर्क को कैसे रोकूं?

समस्या के आसपास आने के लिए मैं इसके साथ आया।

if(exists("ps")){ 
    print("got password, keep going") 
} else { 
    ps <-readline(prompt="get the password in ") 
} 

options(RCurlOptions = list(
    capath = system.file("CurlSSL", "cacert.pem", 
    package = "RCurl"), ssl.verifypeer = FALSE) 
) 

sheets.con = getGoogleDocsConnection(
    getGoogleAuth("[email protected]", ps, service ="wise")) 

#WARNING: this would prevent curl from detecting a 'man in the middle' attack 
ts2=getWorksheets("hpv type",sheets.con) 

मुझे RStudio का उपयोग करना अच्छा लगता है। मुझे असहज लगता है कि यह देखने के समय मेरे कार्यालय में किसी भी सहयोगी के लिए अपना पासवर्ड प्रदर्शित कर रहा है। मैंने एक नकली पासवर्ड इस्तेमाल किया लेकिन छवि को देखो। my password would be in plain view for all to see in RStudio। इसके अलावा, अगर मैंने वर्कस्पेस को सहेजा है तो मेरा पासवर्ड इसके साथ सहेजा जाएगा और मुझे डर है कि मैं इसे किसी और को दे रहा हूं अगर कुछ महीनों बाद, जब मैं इसमें क्या था, तो मैं भूल गया था, मैंने अपना धन्यवाद दिया। एक सहयोगी को फाइल करें।

मैंने earlier post में आर में पासवर्ड के बारे में कुछ सामान्य पढ़ा। RGoogleDocs का उपयोग करते समय मुझे अपना पासवर्ड छुपाने में सक्षम होने के लिए पर्याप्त जानकारी नहीं मिली।

+0

, http://stackoverflow.com/a/36218700/3827849 –

उत्तर

23

मेरा दृष्टिकोण आर स्टार्टअप फ़ाइल में आर स्टार्टअप फ़ाइल .Rprofile के भीतर लॉगिन-नाम & पासवर्ड सेट करना है। फिर मेरा कोड getOption() के साथ मान प्राप्त करता है और फिर मान में शीर्ष-स्तरीय चर में संग्रहीत या संग्रहीत नहीं होता है। ( में dump.frames के माध्यम से पोस्ट-मॉर्टम डिबगिंग करने पर यह सहेजा जा सकता है)।

यह महत्वपूर्ण है कि .Rprofile आपके अलावा किसी अन्य व्यक्ति द्वारा नहीं पढ़ा जा सके।

तो

options(GoogleDocsPassword = c(login = 'password')) 
.Rprofile में

और फिर

auth = getGoogleAuth() 

सिर्फ पहली पैरामीटर के लिए डिफ़ॉल्ट मान के रूप में काम करता है GoogleDocsPassword विकल्प देखने के लिए है।

डी

+0

देख मैं थोड़ा खो रहा हूँ। आइए मान लें कि लॉगिन "[email protected]" है और पासवर्ड "12345" था। विकल्प कैसे होगा (GoogleDocsPassword = c (लॉगिन = 'पासवर्ड')) देखो। कोई लाइन auth = getGoogleAuth() कहां रखता है? क्या यह आरप्रोफाइल में जाता है? – Farrel

+1

किसी भी आर सत्र में, RRofofile में आर के बाहर एक बार GoogleDocsPassword विकल्प सेट करने के बाद, आप कनेक्शन बनाने के लिए con = getGoogleDocsConnection() का उपयोग कर सकते हैं। मुद्दा यह है कि कार्यों को निष्क्रिय रूप से कनेक्शन बनाने के लिए लॉगिन और पासवर्ड कैसे ढूंढें। आप getDocs() सीधे भी उपयोग कर सकते हैं, लेकिन GoogleDocsConnection() प्राप्त करने के साथ ही कनेक्शन बनाने के लिए और अधिक कुशल है और प्रत्येक कॉल में उच्च स्तर के कार्यों में इसे पास करें। (अन्यथा, Google के साथ हर बार एक नया कनेक्शन बनाने के लिए हमारे पास अधिक संचार होता है।) – Duncan

+2

मैंGoogleAuth() प्राप्त करने के लिए कॉल नहीं करता हूं या GoogleDocsConnection() या उस प्रकृति के किसी भी चीज़ को मेरे पास नहीं देता हूं। प्रोफाइल। क्यूं कर? क्योंकि मैं हर आर सत्र में GoogleDocs का उपयोग नहीं करूंगा। जब मैं उस आर सत्र के दौरान कनेक्शन चाहता हूं तो मैं बस GoogleDocsConnection() को कॉल करता हूं। विकल्प में सेट करना। प्रोप्रोफाइल केवल चीजों को सेट करने के लिए सेट कर रहा है यदि उनकी आवश्यकता हो और यदि वे नहीं हैं तो कोई समस्या नहीं आती है। – Duncan

7

मुझे एक ही समस्या थी, और कोई वास्तविक समाधान नहीं था। मैं जिस कामकाज का उपयोग करता हूं वह है, मैं इस उद्देश्य के लिए सिर्फ एक Google खाता बना रहा हूं, जिस पासवर्ड की मुझे परवाह नहीं है। मैं फिर उन दस्तावेज़ों को साझा करता हूं जिन्हें मैं चाहता हूं कि आर उस खाते से पहुंच सके।

लेकिन अगर किसी के पास शुरुआती प्रश्न का उत्तर है तो मुझे भी रूचि है।

3

ऐसा लगता है कि आप अपने विकल्पों में पासवर्ड स्टोर कर सकते हैं और "पीएस" के बजाय सीधे "getOption" का उपयोग कर सकते हैं। यद्यपि बेहतर समाधान हैं हालांकि।

2

इस मैं एक बना ईमेल पते के साथ Google डॉक के साथ, एक Google खाता बनाएं और फिर साझा करने और प्राधिकरण के लिए इसका इस्तेमाल करते हैं जैसी चीजों के लिए। इस प्रकार, स्क्रिप्ट चलाने के लिए जरूरी चीजों से मेरे व्यक्तिगत लॉगिन विवरण अलग करना।

0

एप्लिकेशन विशिष्ट पासवर्ड के साथ 2 चरण प्रमाणीकरण क्या है? आप अपने असली एक को प्रकट किए बिना एप्लिकेशन विशिष्ट पासवर्ड का उपयोग कर सकते हैं। और यदि आप चाहें तो इसे रद्द कर सकते हैं!

3

आप कंप्यूटर पर एक फ़ाइल में पासवर्ड, इनकोडिंग और सभी की दुकान और जैसे

getPassword < somthing के साथ यह कह सकते हैं - समारोह (फ़ाइल = पासवर्ड फ़ाइल का स्थान) {unencode (readLines (फाइल))}

अपने .Rprofile में सेट इस और कोड

getPassword में उपयोग()।

यह आपके पासवर्ड को किसी भी आर फाइल में संग्रहीत नहीं करता है और आप फ़ाइल में चेक में निर्माण कर सकते हैं।

3

यदि आप वास्तव में इसे कहीं भी स्टोर नहीं करना चाहते हैं, तो इसका एक समाधान पासवर्ड के लिए एक चर का उपयोग नहीं करना है, शायद Google खाता पते के लिए भी! linked answer पर बिल्डिंग, आप Windows का उपयोग कर रहे हैं क्यों की कोशिश नहीं

library(tcltk) 
library(RGoogleDocs) 

getHiddenText <- function(label = "Enter text:", symbol = "*", defaultText = ""){ 
    wnd <- tktoplevel() 
    entryVar <- tclVar(defaultText) 
    tkgrid(tklabel(wnd, text = label)) 
    #Entry box 
    tkgrid(entryBox <- tkentry(wnd, textvariable = entryVar, show = symbol)) 
    #Hitting return will also submit text 
    tkbind(entryBox, "<Return>", function() tkdestroy(wnd)) 
    #OK button 
    tkgrid(tkbutton(wnd, text="OK", command=function() tkdestroy(wnd))) 
    #Wait for user to submit 
    tkwait.window(wnd) 
    return(tclvalue(entryVar)) 
} 

repeat { 
    con <- try(getGoogleDocsConnection(getGoogleAuth(
     getHiddenText(
      label = "Enter google account:", 
      symbol = "", # or set to "*" to obscure email entry 
      defaultText = "@gmail.com"), # a little timesaver 
     getHiddenText(
      label = "Enter password:", 
      symbol = "*", 
      defaultText = ""), 
     service = "wise"))) 
    if (inherits(con, "try-error")) { 
     userResponse <- tkmessageBox(
      title = "Error", 
      message = "Couldn't connect to Google Docs. Try again?", 
      icon = "error", type = "yesno") 
     if (tclvalue(userResponse) == "no") { 
      stop("Unable to connect to Google Docs, user cancelled.") 
     }   
    } else { # connection successfully authenticated 
     break() # so escape the repeat loop 
    } 
} 
संबंधित मुद्दे

 संबंधित मुद्दे