• Resolved omdaddi

    (@omdaddi)


    I am in early days of setting up a podcast and having a play with premium content as a way for trusted testers to be able to listen without my going public.

    • I have only one plugin (PowerPress) and set up a Custom Podcast Channel with slug friends.
    • I added a test file and set it up as a post with the Friends podcast tag. Custom podcasts reports 1 podcast.
    • I set up a test user who is a Premium Subscriber with a simple password: eg. fred:cupcake
    • The url blahblah.com/feed/friends/ asks for a username and password. fred / cupcake puts me in a loop where it keeps asking for the password.
    • I tried https://fred:[email protected]/feed/friends/ and it does the same.

    Am I missing something? Is there some issue with my web host that might cause it that I might check?

    If I turn off the password protection then the feed works perfectly.

Viewing 11 replies - 16 through 26 (of 26 total)
  • ?Hi Angelo! Nice to talk to you, big fan of your plugin!

    They told me that they use FPM, and it removes those variables. The only option is this solution: https://hetzner.co.za/help-centre/website/how-do-i-use-php_auth_user-and-php_auth_pw-on-a-fastcgi-enabled-server/

    Buuuut that means messing with the plugin’s code, and thats something I can’t do.

    Would that be a solution?

    Plugin Author Angelo Mandato

    (@amandato)

    Hello Joan,

    I took a quick look at https://hetzner.co.za/help-centre/website/how-do-i-use-php_auth_user-and-php_auth_pw-on-a-fastcgi-enabled-server/ it appears their instructions have mixed two different sets of instructions together which may have set you on the wrong path. To make their PHP code work, the line in your .htaccess would look like:

    RewriteEngine on
    RewriteRule .* - [E=REDIRECT_HTTP_AUTHORIZATION:%
    {HTTP:Authorization},L]

    Note REDIRECT_HTTP_AUTHORIZATION variable you create in the .htaccess needs to match the PHP $_SESSION variable.

    More importantly, the formatting on their page is messed up, some code needs to be on new lines and in some cases there are space characters displaying as HTML ”  “, that is not meant to be in the code.

    In other words, use the information on https://hetzner.co.za/help-centre/website/how-do-i-use-php_auth_user-and-php_auth_pw-on-a-fastcgi-enabled-server/ as a guide but do not copy/paste the code from this source as it will cause issues.

    If you do what is instructed in PowerPress’s documentation (answer on this page: https://create.blubrry.com/resources/powerpress/advanced-tools-and-options/premium-podcasting-content/premium-podcasting-q/) you do not need to modify any PHP code. The variable set in the RewriteRule that you add in our instructions is handled in PowerPress automatically. Note that your .htaccess file may be different depending on other plugins you use, the main thing is you add the RewriteRules that add the HTTP_AUTHORIZATION environment variable that way the code in PowerPress will use it for authentication.

    Thanks,
    Angelo

    Hi again!

    Yeah, I followed that documentation, but still the authentication is not working. I’ll check it with my hosting. Do you know a hosting provider which I can work with, to make it work?

    Plugin Author Angelo Mandato

    (@amandato)

    Hello @boluda,

    I do not have a specific host to recommend, sorry. I personally build my own servers in Amazon Web Services. One option with Amazon Web Services is called LightSail, that will at least give you infrastructure where you have 100% control.

    Thanks,
    Angelo

    Thanks again, Angelo! BTW, I’m a PowerPress podcast listener! Kudos to MacKenzie, good work!

    I’m having a similar issue with the premium content password protected feeds are not passing authentication. We are running under NGINX and my host has been trying to help me resolve this. I have contacted the support team for PowerPress and the person they assigned to my case did not know much about the issue nor how I could get in touch with a developer on resolving the issue.

    My host has PHP in CGI mode running, however I don’t believe it is fast CGI. We have tried using the config script that converting the .htaccess commands (which came out to be):

    location / {
    if (!-e $request_filename){
    rewrite ^(.*)$ /index.php;
    }
    }

    But that did not work.

    I have seen that the key is to pass the authentication headers to PHP. But we are bashing our heads on our desks trying to figure out how this can be done.

    Any help or pointers could be helpful. My Podast runs fine on the normal feed, but the custom channel I created for premium content is just not passing authentication.

    • This reply was modified 5 years, 9 months ago by voodoostevie.
    Plugin Author Angelo Mandato

    (@amandato)

    Hello @voodoostevie,

    The “FAST” portion of Fast CGI is a technique of how PHP interacts with the web server. Traditional CGI runs each process separately, it is not very efficient as the webserver runs the app and then waits for it to react with results. If you are using Nginx, you are most certainly using the FAST CGI method. This is the FAST CGI portion as its constantly running and “interacting” with the server rather than reacting. The secret sauce is the “always running’, everything is in memory with the FAST CGI approach which is one of many features that makes it faster. This de-coupling is where the problem is; not all of the HTTP request information is sent to the service that processes the PHP requests. In your case, the HTTP request username and password is not getting passed onto the FAST CGI process.

    It appears nginx needs additional parameters to tell it to pass this information onto PHP. From quick google search, I found this posting: https://serverfault.com/questions/520647/how-to-get-php-auth-user-and-php-auth-pw-available-in-nginx

    e.g.

    fastcgi_param PHP_AUTH_USER $remote_user;
    fastcgi_param PHP_AUTH_PW $http_authorization;

    I am not familiar with using Nginx to run PHP in CGI mode, all of my experience is with using Nginx as a caching proxy in front of Apache. You will need to contact your web host for more specific help, but the above should steer them in the right direction.

    Thanks,
    Angelo

    I still have never got this problem licked.

    What capabilities does the Premium Subscriber role need to have?

    Currently on are:

    Premium Content
    Read
    Read Feed
    Read Feed Source

    No other capabilities are turned on for this user role.

    In the “Other Settings” tab of this channel, Require user to be signed-in to access feed is checked on, and the next setting is set to Premium Subscriber.

    Plugin Author Angelo Mandato

    (@amandato)

    Hello @tedstur,

    My suggestion is to use the provided role and capability first and get that to work. The included Role is “Premium Subscriber” and the capability is called “Premium Content”. Premium Subscriber is given “Premium Content” capability. Assign a user to the “Premium Subscriber” role. Then go to your podcast channel and make sure the channel is set to use the “Premium Content” capability. Your user should now be able to sign into your website and access the podcast episodes via the web.

    If your feed is working correctly, your server should allow your user to enter their email and password via HTTP authentication. If your user can sign into the web site but cannot via HTTP authentication, then your server is not passing on the authentication information to PHP, something is wrong at the fastcgi part of the path. You will need to contact the administrator or engineer who setup your server hosting to solve this problem, all we can do is suggest what has worked for others, which you can pass onto your hosting to help you resolve. Easiest option may be to setup your own web server that uses Apache with the PHP module, in this case you will not have this problem plus performance will be sufficient if you are using newer PHP 7.2/7.3 versions.

    Thanks,
    Angelo

    I had the same problem. None of the suggested solutions worked for me. However later I figured out something.
    I had this plugin “WP Super Cache” installed and enabled for caching which is somehow not compatible with Premium content feature of Powerpress. When I turned off Caching by going to “WP Super Cache Settings” and setting “Caching Off” under the Easy tab, and the login started working. I checked in all the browsers and it is now working.
    Hope this helps
    Thanks

    I should have come back here and posted this earlier… for us, it was the official Mailchimp plugin causing problems.

Viewing 11 replies - 16 through 26 (of 26 total)
  • The topic ‘Premium content refuses password’ is closed to new replies.