问题
I have been writing my own meteor accounts package and I seem to be missing something. I am not getting any errors in the browser or in the terminal so it's difficult for me to troubleshoot. The only error I get is from the accounts-ui package itself which is saying 'No login services configured.' The code can be seen at https://github.com/khamoud/meteor-accounts-stripe if anyone could take a look. Thanks in advance.
回答1:
I created a accounts package myself a while ago and my advice would be to stick to whatever is done in the base accounts packages of the same service (in this case OAuth 2 it looks like) as closely as possible. I can see you have done that but there are minor differences.
I downloaded your package and tried it out myself. While I can't get it working (I haven't used the Stripe API so I wont be digging into it completely) I think I can make more progress than you have had.
First of all I don't get a 'No login services configured' error. Did you add your package? I did 'meteor add accounts-ui', created a packages folder in the my project's root and pasted your package folder into it, renamed it 'accounts-stripe' and did 'meteor add accounts-stripe'.
I then added a {{loginButtons}} helper to the page. With this I got the configure Stripe login buttons but it wouldn't open a pop-up when I clicked on it. I got an error message in the js console 'Uncaught Error: Duplicate service: stripe'. The problem seems to be you have the line:
Accounts.oauth.registerService('stripe');
in both accounts_stripe.js and stripe_client.js. Removing it from stripe_client.js fixed it for me. I could then add my API keys from stripe.
The next problem is once these are submitted you store them in 'clientId' in stripe_configure.js but then retrieve them using appId from the config object in stripe_client.js and stripe_server.js. I noticed this because the login URL in the pop-up after submitting the API keys had a undefined client_id. Changing 'clientId' to 'appId' in stripe_configure.js will fix that.
Unfortunately it still doesn't work. I get
{"error":{"message":"No application matches the supplied client identifier"}}
from the pop-up window. This could be for any number of reasons, perhaps I submitted the wrong thing in the API keys window, maybe it's because I'm using a test project on Stripe, or maybe you have implemented the login workflow incorrectly. A quick google of the Stripe OAuth docs suggests that I have submitted the wrong things for the client_id and secret. Like I said I haven't used the Stripe API before.
I hope I have got you started on fixing it though.
来源:https://stackoverflow.com/questions/19780379/impletmenting-a-custom-meteor-accounts-package