Adding some logic to a Linux Server running Cent OS6
Hi, Firstly I would like to say that I know nothing about this what so ever and I wouldn't even know where to start to look (apart from here of course). My scenario is that as of next week I will be deploying my Smartphone web apps to a Linux Server ready for sale. I want to use gumroad webhooks (https://gumroad.com/webhooks) to carry out the administrative side of things but have been advised that I need to create some server side logic for security reasons first. This is what I've been advised to do: (I'd welcome any other Input)
1. You have the user create a username and password for your application if they want to purchase (stored server-side).
2. After the ID is created, you send them over to gumroad to purchase (including a user ID).
3. If the purchase is successful, gumroad contacts your server with the user ID.
4. The server marks that user as authorized/purchased. At this point, what you return to gumroad doesn't matter, as long as it gets the user back to your app.
5. The user logs in, and their account is now authorized.
As you can see, it's going to require a bit of server side authorization if you don't want people to be able to re-use licenses.
If someone could point me in the right direction for examples on procedures and coding that would be much appreciated
Kind Regards
Will
Comments
-
Hello,
first of all, I'd say your question is OS-independent. It really doesn't matter whether it's going to run on GNU/Linux or Windows or *BSD.
It pretty much sounds to me like you're in need of full-stack(front-end -> back-end) application no matter whether it's going to be simple or "sophisticated" one. You should hire developer for such task. I don't know if there are any for-free solutions available, I haven't looked for any, have you?
Anyway, I've read your previous post as well. I'd bet on people's honesty rather the opposite. And anything can be hacked. Anyway, I don't know what you can do or can't do on client's phone. In your previous post, you've suggested user_id, phone_id and something else. I'd take these, added SALT(either on device itself or on your server) create SHA256 hash and used it as sort-of key. Or generate license key, add user_id, phone_id, whatever else, create hash. Either way, store this hash at your server. And then check whether such key has been used, resp. is already in DB, or not.
And perhaps create an alternate way for user to re-download your app again in case he has deleted it. Although, this could be a possible back-door for cheating. *shrug*
It all depends what's possible and available(meaning data from client) to you and what isn't.
Really, just shooting ideas. Look around the internet whether there is some free-for-download solution available or hire somebody to do it. I think prevalent tendency is ``I've paid for it[full stack app development], I'll keep it.''.
Regards,
Z.0 -
Hi Z, thanks for getting back to me, I haven't looked around for free solutions as yet because as I explained in the initial post I don't exactly know what it is that I have to do? I was hoping that I could find something that would teach me how to do it. Basically what I have is a website that the user can download the smartphone web app from to their device. I know that there is always a possibility of someone by-passing a payment procedure but never the less I've got to have some security in place as standard procedure. Everything I've done for this has been self taught either from books or searching through stacks of information on the internet so what I'm hoping for is a point in the right direction to give me the information required to carry out my question. An example Test App may help to support my post.
From your Smartphone device browser (iPhone/iPad/iPod touch/Blackberry or Android)
please type in the following address www.nsbapp.com/yrpvTestApp
upon opening up of the app from the NSbasic test server please choose the installation procedure for your particular device
iPhone and iPad/iPod touch
From your device, in the Safari browser choose the required app
When the app appears on to screen select the Action button at the foot of the device
From the menu select add to home screen
You will see the Application Icon appear, select add. Close and return to the home screen
The application is added to the device in which the executable Icon is placed on to the home screen.
Android
From your device, in the browser choose the required phone app
When the app appears on to screen select the menu button and create a Bookmark, then close and return to the home screen.
Hold your finger on the home screen briefly, a menu appears, select shortcuts (In newer versions of Android select widgets), bookmarks and then add application to Home Screen.
The application is added to the device in which the executable Icon is placed on to the home screen.
Blackberry
From your device, in the browser choose the required phone app
When the app appears on to screen select the BlackBerry button, then select add to home screen. The application Icon will appear, select add and then close and return to the home screen.
The application is added to the device in which the executable Icon is placed on to the home
As you can see this is all very simple as long as I can get the list 1 to 5 from my initial post in place before the download and running of the app
Kind regards
Will
0 -
Will,
I hope there is a way for developer to do testing before going live.
You need to install GNU/Linux server, then http server(ngix or apache or jboss for java(?)), configure it based on the solution you're going to deploy - be it homemade or something that's out there.
And then play around and test until you get it right.
As for gumroad, they obviously have some kind of API. I'm pretty sure they're going to call 'http://yourdomain.tld/some_url' and you have to put your script at 'some_url' to do the stuff, resp. accept parameters, process them, and return app to the user. At least that's how I understood it(+/-). It's going to be similar as programming application for a mobile phone. Since you did that, it should be easy-ish.
I'd start small - no license keys and whatever, just get app into your phone. And then start adding restrictions.
Z.0
Categories
- All Categories
- 217 LFX Mentorship
- 217 LFX Mentorship: Linux Kernel
- 788 Linux Foundation IT Professional Programs
- 352 Cloud Engineer IT Professional Program
- 177 Advanced Cloud Engineer IT Professional Program
- 82 DevOps Engineer IT Professional Program
- 146 Cloud Native Developer IT Professional Program
- 137 Express Training Courses
- 137 Express Courses - Discussion Forum
- 6.2K Training Courses
- 46 LFC110 Class Forum - Discontinued
- 70 LFC131 Class Forum
- 42 LFD102 Class Forum
- 226 LFD103 Class Forum
- 18 LFD110 Class Forum
- 37 LFD121 Class Forum
- 18 LFD133 Class Forum
- 7 LFD134 Class Forum
- 18 LFD137 Class Forum
- 71 LFD201 Class Forum
- 4 LFD210 Class Forum
- 5 LFD210-CN Class Forum
- 2 LFD213 Class Forum - Discontinued
- 128 LFD232 Class Forum - Discontinued
- 2 LFD233 Class Forum
- 4 LFD237 Class Forum
- 24 LFD254 Class Forum
- 694 LFD259 Class Forum
- 111 LFD272 Class Forum
- 4 LFD272-JP クラス フォーラム
- 12 LFD273 Class Forum
- 146 LFS101 Class Forum
- 1 LFS111 Class Forum
- 3 LFS112 Class Forum
- 2 LFS116 Class Forum
- 4 LFS118 Class Forum
- 6 LFS142 Class Forum
- 5 LFS144 Class Forum
- 4 LFS145 Class Forum
- 2 LFS146 Class Forum
- 3 LFS147 Class Forum
- 1 LFS148 Class Forum
- 15 LFS151 Class Forum
- 2 LFS157 Class Forum
- 25 LFS158 Class Forum
- 7 LFS162 Class Forum
- 2 LFS166 Class Forum
- 4 LFS167 Class Forum
- 3 LFS170 Class Forum
- 2 LFS171 Class Forum
- 3 LFS178 Class Forum
- 3 LFS180 Class Forum
- 2 LFS182 Class Forum
- 5 LFS183 Class Forum
- 31 LFS200 Class Forum
- 737 LFS201 Class Forum - Discontinued
- 3 LFS201-JP クラス フォーラム
- 18 LFS203 Class Forum
- 130 LFS207 Class Forum
- 2 LFS207-DE-Klassenforum
- 1 LFS207-JP クラス フォーラム
- 302 LFS211 Class Forum
- 56 LFS216 Class Forum
- 52 LFS241 Class Forum
- 48 LFS242 Class Forum
- 38 LFS243 Class Forum
- 15 LFS244 Class Forum
- 2 LFS245 Class Forum
- LFS246 Class Forum
- 48 LFS250 Class Forum
- 2 LFS250-JP クラス フォーラム
- 1 LFS251 Class Forum
- 151 LFS253 Class Forum
- 1 LFS254 Class Forum
- 1 LFS255 Class Forum
- 7 LFS256 Class Forum
- 1 LFS257 Class Forum
- 1.2K LFS258 Class Forum
- 10 LFS258-JP クラス フォーラム
- 118 LFS260 Class Forum
- 159 LFS261 Class Forum
- 42 LFS262 Class Forum
- 82 LFS263 Class Forum - Discontinued
- 15 LFS264 Class Forum - Discontinued
- 11 LFS266 Class Forum - Discontinued
- 24 LFS267 Class Forum
- 22 LFS268 Class Forum
- 30 LFS269 Class Forum
- LFS270 Class Forum
- 202 LFS272 Class Forum
- 2 LFS272-JP クラス フォーラム
- 1 LFS274 Class Forum
- 4 LFS281 Class Forum
- 9 LFW111 Class Forum
- 259 LFW211 Class Forum
- 181 LFW212 Class Forum
- 13 SKF100 Class Forum
- 1 SKF200 Class Forum
- 1 SKF201 Class Forum
- 795 Hardware
- 199 Drivers
- 68 I/O Devices
- 37 Monitors
- 102 Multimedia
- 174 Networking
- 91 Printers & Scanners
- 85 Storage
- 758 Linux Distributions
- 82 Debian
- 67 Fedora
- 17 Linux Mint
- 13 Mageia
- 23 openSUSE
- 148 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 353 Ubuntu
- 468 Linux System Administration
- 39 Cloud Computing
- 71 Command Line/Scripting
- Github systems admin projects
- 93 Linux Security
- 78 Network Management
- 102 System Management
- 47 Web Management
- 63 Mobile Computing
- 18 Android
- 33 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 371 Off Topic
- 114 Introductions
- 174 Small Talk
- 22 Study Material
- 805 Programming and Development
- 303 Kernel Development
- 484 Software Development
- 1.8K Software
- 261 Applications
- 183 Command Line
- 3 Compiling/Installing
- 987 Games
- 317 Installation
- 96 All In Program
- 96 All In Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)