Joomla-通过外部“ OAuth 2.0授权代码流”进行的用户登录

问题描述

我要使用 battle.net的OAuth 2.0授权代码流https://develop.battle.net/documentation/guides/using-oauth/authorization-code-flow)作为我网站上的登录名。

  1. 用户可以单击按钮“使用Battle.net登录”。之后,他将被重定向到Battle.net网站上,该网站上会生成授权代码。战斗网一侧会将用户重定向到我的joomla网站,该网站的授权代码输出在浏览器的地址栏中。

  2. 我的网站获取了授权代码并发布了该curl帖子,因此我获得了用户battle.net配置文件的访问令牌。

     $ch = curl_init();
    
     curl_setopt($ch,CURLOPT_URL,'https://eu.battle.net/oauth/token');
     curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
     curl_setopt($ch,CURLOPT_POST,CURLOPT_POSTFIELDS,"client_id=XX&client_secret=XX&redirect_uri=XX&
     grant_type=authorization_code&scope=wow.profile&code=XX");
    
     $headers = array();
     $headers[] = 'Content-Type: application/x-www-form-urlencoded';
     curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
      echo $ch,$result = curl_exec($ch);
     if (curl_errno($ch)) {
     echo 'Error:' . curl_error($ch);
     }
    
  3. 我可以访问他的Battle.net用户信息:

    {"sub":"888888","id":ID,"battletag":"USERNAME#1650"}
    

不可能获得用户Battle.net邮件地址。

现在,Joomla如何像对待“普通”注册用户一样处理此用户(就像他已经在joomla注册掩码上进行注册一样)。

我认为首先需要在joomla数据库中创建用户。为此,我想使用一个简单的注册脚本,其中包含我从Battle.net用户的信息中获取的变量。问题是我没有创建joomla用户所需的邮件或密码。

你能给我一些提示吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...