开发其它平台

建议以参考其它平台的代码为主,在这只是简单说明一下。

类属性

接口所需的非通用参数,都写在类属性中,不写在方法的参数里。

方法

实现如下几个方法:

    1. /**
    2. * 第一步:获取登录页面跳转url
    3. * @param string $callbackUrl 登录回调地址
    4. * @param string $state 状态值,不传则自动生成,随后可以通过->state获取。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。一般为每个用户登录时随机生成state存在session中,登录回调中判断state是否和session中相同
    5. * @param array $scope 请求用户授权时向用户显示的可进行授权的列表。可空
    6. * @return string
    7. */
    8. public abstract function getAuthUrl($redirectUri = null, $state = null, $scope = null);
    9. /**
    10. * 第二步:处理回调并获取access_token。与getAccessToken不同的是会验证state值是否匹配,防止csrf攻击。
    11. * @param string $storeState 存储的正确的state
    12. * @param string $code 第一步里$redirectUri地址中传过来的code,为null则通过get参数获取
    13. * @param string $state 回调接收到的state,为null则通过get参数获取
    14. * @return string
    15. */
    16. protected abstract function __getAccessToken($storeState, $code = null, $state = null);
    17. /**
    18. * 获取用户资料
    19. * @param string $accessToken
    20. * @return array
    21. */
    22. public abstract function getUserInfo($accessToken = null);
    23. /**
    24. * 刷新AccessToken续期
    25. * @param string $refreshToken
    26. * @return bool
    27. */
    28. public abstract function refreshToken($refreshToken);
    29. /**
    30. * 检验授权凭证AccessToken是否有效
    31. * @param string $accessToken
    32. * @return bool
    33. */
    34. public abstract function validateAccessToken($accessToken = null);