Impletmenting a custom meteor accounts package

梦想的初衷 提交于 2019-12-13 19:15:23

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!