如何登录用户在WordPress和自定义网站


How to login user in both WordPress and custom website?

我有一个word press电子商务网站,它是用Woo商务插件制作的。我为在我的网上商店购买东西的客户开发了一个会员网站。我在数据库中维护单独的用户表。用户名在word press wp用户表和我的表中都是相同的。我想在我的会员区和word press中登录用户,这样我就可以从word press获取数据(比如打印收据等)。当用户登录到我的自定义会员资格时,应该会发生这种情况。我的自定义成员资格是使用php开发的。Wordpress和自定义会员资格都在同一个域下。我们也可以在自定义会员中使用wordpress功能。

感谢

解决问题的最佳方案是SSO(单点登录)。单点登录(SSO)是多个相关但独立的软件系统的访问控制特性。

SSO(单点登录)意味着,当用户登录到一个应用程序时,他将"自动"登录到其他所有应用程序,而不考虑平台、技术和域。

例如,谷歌为他们的产品实现了SSO:Gmail、YouTube、Analytics等。当你打开电脑并访问Gmail时,你是第一次登录。然后,如果你去了YouTube,就不会再提示你输入凭据了。

它的工作方式是通过"中央服务"(就谷歌而言,这是https://accounts.google.com)。当您第一次登录时,会在此中心服务上创建cookie。然后,当你试图访问第二个应用程序时,你会被重定向到中央服务,但由于你已经有了cookie,你会直接用令牌重定向到应用程序,这意味着你已经登录。

WordPress SSO插件-https://wordpress.org/plugins/tags/single-sign-on

如果您的自定义网站是基于PHP的,请参阅此处的解决方案-如何使用PHP进行单点登录?

点击这里,您可以在登录自定义页面时登录wordpress用户。

  $user = get_user_by( 'email', "username@domain.com" );
    if( $user ) {
        wp_set_current_user( $user->id, $user->user_login );
        wp_set_auth_cookie( $user->id );
        do_action( 'wp_login', $user->user_login );
    }    

如果你仍然想继续你的版本,而不是像以前建议的那样尝试一次演唱,你需要做的是在你拥有的每个网站上同时"记录用户"。

这个想法不是最好的,但我假设你的会员区在wordpress内,所以网站应该是一样的。如果不是这样,单次登录是您的最佳选择。