I'm really new to this and need to create an url-safe token of between 2 and 20 characters and only alphanumeric chars (letters and numbers) are allowed. I use this token for processing by a payment provider.
I have the method below, but I got an error that the token was invalid. How can I rewrite the method so that it's still url-safe but does not exceed 20 characters and only uses alphanumeric chars?
token = SecureRandom.urlsafe_base64
As per documentation SecureRandom.urlsafe_base64 will return “-” and “_” which are characters you've said you don't want.
You can use SecureRandom.hex(n) to get 2*n chars containing a-z and 0-9. It's still URL safe. Your final code will be:
token = SecureRandom.hex # without `n` token will be 16 characters long.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With