2

I'm developing a private API for a mobile app. I plan on securing and authenticating logged in users using JSON Web Tokens.

When a user authenticates and logs in to the service, the server will return a signed JWT in the response. The device stores this securely and sends it back as an HTTP Authorization header in every subsequent request.

So far so good. However, where I'm a bit puzzled is this: the token is generated for a new user when their account is created (ie they registered). This API endpoint (POST to create) is open and there is no token verification (naturally since it's a new user).

How can I ensure that POST requests to create new users are only authorized from the mobile app? In other words, if a malicious user sends POSTs to create spam users, how do I recognize this?

The API is over https. Though, even if I were to require the app to use an API key as a query param, that would expose it on the wire. I suppose I could pass in a Basic Header with a hashed API key/Secret.

What is a way to do this securely?

1 Answers1

2

Edit: How to protect the 'public' part of a REST service from spam?

Community
  • 1
  • 1
Purpamine
  • 141
  • 2
  • 14