Module: WeixinAuthorize::Api::Oauth
- Included in:
- Client
- Defined in:
- lib/weixin_authorize/api/oauth.rb
Instance Method Summary collapse
-
#authorize_url(redirect_uri, scope = "snsapi_base", state = "weixin") ⇒ Object
如果用户点击同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数redirect_uri?state=STATE.
-
#get_oauth_access_token(code) ⇒ Object
微信通过请求 #authorize_url 方法后,会返回一个code到redirect_uri中.
-
#get_oauth_userinfo(openid, oauth_token, lang = "zh_CN") ⇒ Object
如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。.
-
#qrcode_authorize_url(redirect_uri, scope = "snsapi_login", state = "web_wx_login") ⇒ Object
网站应用微信登录授权URL 文档:t.cn/RyZVWEY.
-
#refresh_oauth2_token(refresh_token) ⇒ Object
refresh_token: 填写通过access_token获取到的refresh_token参数.
Instance Method Details
#authorize_url(redirect_uri, scope = "snsapi_base", state = "weixin") ⇒ Object
如果用户点击同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数redirect_uri?state=STATE
20 21 22 23 |
# File 'lib/weixin_authorize/api/oauth.rb', line 20 def (redirect_uri, scope="snsapi_base", state="weixin") uri = encode_url(redirect_uri) WeixinAuthorize.open_endpoint("/connect/oauth2/authorize?appid=#{app_id}&redirect_uri=#{uri}&response_type=code&scope=#{scope}&state=#{state}#wechat_redirect") end |
#get_oauth_access_token(code) ⇒ Object
微信通过请求 #authorize_url 方法后,会返回一个code到redirect_uri中
28 29 30 |
# File 'lib/weixin_authorize/api/oauth.rb', line 28 def get_oauth_access_token(code) WeixinAuthorize.http_get_without_token("/sns/oauth2/access_token?appid=#{app_id}&secret=#{app_secret}&code=#{code}&grant_type=authorization_code", {}, "api") end |
#get_oauth_userinfo(openid, oauth_token, lang = "zh_CN") ⇒ Object
如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。
38 39 40 |
# File 'lib/weixin_authorize/api/oauth.rb', line 38 def get_oauth_userinfo(openid, oauth_token, lang="zh_CN") WeixinAuthorize.http_get_without_token("/sns/userinfo?access_token=#{oauth_token}&openid=#{openid}&lang=#{lang}", {}, "api") end |
#qrcode_authorize_url(redirect_uri, scope = "snsapi_login", state = "web_wx_login") ⇒ Object
网站应用微信登录授权URL 文档:t.cn/RyZVWEY
8 9 10 11 |
# File 'lib/weixin_authorize/api/oauth.rb', line 8 def (redirect_uri, scope="snsapi_login", state="web_wx_login") uri = encode_url(redirect_uri) WeixinAuthorize.open_endpoint("/connect/qrconnect?appid=#{app_id}&redirect_uri=#{uri}&response_type=code&scope=#{scope}&state=#{state}#wechat_redirect") end |
#refresh_oauth2_token(refresh_token) ⇒ Object
refresh_token: 填写通过access_token获取到的refresh_token参数
33 34 35 |
# File 'lib/weixin_authorize/api/oauth.rb', line 33 def refresh_oauth2_token(refresh_token) WeixinAuthorize.http_get_without_token("/sns/oauth2/refresh_token?appid=#{app_id}&grant_type=refresh_token&refresh_token=#{refresh_token}", {}, "api") end |