this post was submitted on 21 Aug 2023
11 points (100.0% liked)

Programming

17129 readers
358 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
 

I have an implementation for an internal API, the requirement is to implement some sort of basic authentication instead of oauth (generating a token).

Do you think there's any difference between using just an API key vs using a client id + secret?
For what I see it'd be just like saying "using a password" vs "using a user and a password".

you are viewing a single comment's thread
view the rest of the comments
[–] ck_@discuss.tchncs.de 0 points 1 year ago (1 children)

There is no difference security wise. The benefit of the clientid is mainly that it is shared cleartext information, so it can be used in eg. support requests, password recovery, what have you.

[–] pe1uca@lemmy.pe1uca.dev 0 points 1 year ago (1 children)

You got me thinking in something more, are API keys stored in plain text in DB? Otherwise I don't see a way to quickly know it's valid, I'd have to validate it against all the hashes in the DB.
With client id it'd be easy to just validate the secret against a single hash for that user.

[–] ck_@discuss.tchncs.de 2 points 1 year ago

Its never really a good approach to store secrets in plain text. I don't see how that would be more expensive for your database than validating clientId + secret.