mmattozzi / cocoa-rest-client

A free, native Apple macOS app for testing HTTP/REST endpoints
http://mmattozzi.github.io/cocoa-rest-client/
Other
2.36k stars 206 forks source link

Allow to select and change credentials from macOS Keychain #150

Open Endemoniada opened 5 years ago

Endemoniada commented 5 years ago

The first time I launched the application and ran a request, it somehow picked up a auth credential from my keychain, which I found really nifty. However, it was an old item with the wrong credentials, so it was making requests under the wrong user. I couldn't find any way to remove this connection, so I removed the keychain item (it was incorrect anyway, after all). Now the application neither uses this credential, nor is it asking me for a new one. It also will not find and use a new item I created manually with the correct user and address.

Now, the only way to authenticate is to use the Auth tab each time, manually filling out my credentials.

Bonus issue: when it was using the keychain item for authentication, it ignored the manually entered credentials in the Auth tab. I would think those credentials should supersede any global credentials it has picked up elsewhere.

mmattozzi commented 5 years ago

Are you suggesting that when an endpoint requires auth, the app pops a dialog box up? The keychain stuff is definitely tricky... it's one of the downsides of using macOS/Cocoa's built-in http client (which is what CocoaRestClient uses). I can look into this.

Endemoniada commented 5 years ago

No, not necessarily. Obviously it already looks for keychain entries when running an API for the first time, since that's what happened just now. I'm mostly just asking for menu options to run the same check again, and/or be able to change the keychain item it found.

For example, the Auth tab could have a button that, when clicked, asks the user for a keychain item or presents one with a matching URL.

As it is, it's just terribly confusing when it immediately asks for a keychain item access, but there's no possible way to manage or even repeat the process within the application GUI.

mmattozzi commented 5 years ago

Thanks for the feedback, I will try to play around with this. You're right that this is confusing and I've definitely gotten issues reported because of it in the past.