Skip to content

An Elixir WeChat Media Platform Authentication Client Library

License

Notifications You must be signed in to change notification settings

he9qi/wechat_mp_auth

Repository files navigation

WeChat Media Platform Authentication

Build Status Coverage Status Hex Version License

An Elixir WeChat Media Platform Authentication Client Library 微信第三方平台授权

Installation

  1. Add wechat_mp_auth to your list of dependencies in mix.exs:

    def deps do [{:wechat_mp_auth, "~> 0.0.3"}] end

  2. Ensure wechat_mp_auth is started before your application:

    def application do [applications: [:wechat_mp_auth]] end

Usage

  1. Initialize a client with client_id, client_secret, and redirect_uri.
client = WechatMPAuth.Client.new([
  strategy: WechatMPAuth.Strategy.AuthCode, #default
  client_id: "client_id",
  client_secret: "abc123",
  redirect_uri: "https://example.com/auth/callback"
])
  1. Use get_authorize_url to generate: - the authorization URL using component_verify_ticket received from WeChat - client that contains component_access_token
{client, url} = WechatMPAuth.Client.get_authorize_url(client, [verify_ticket: verify_ticket])
# component_access_token => `client.params["component_access_token"]`
# authorization URL => "https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=client_id&pre_auth_code=preauthcode@@@xxx&redirect_uri=https://example.com/auth/callback"
  1. After authorizing from the above URL, server redirects to redirect_uri with query params: authorization_code and expires_in (https://example.com/auth/callback?auth_code=@@@&expires_in=600). Use component_access_token and authorization_code to get authorizer access token.
{:ok, authorizer_access_token} = client |> WechatMPAuth.Client.get_authorizer_access_token([authorization_code: authorization_code, component_access_token: "component-access-token"])
  1. Use component_access_token to make a request for resources.
resource = WechatMPAuth.ComponentAccessToken.post!(token, "/component/api_get_authorizer_info", %{component_appid: "xxx", authorizer_appid: "xxx"}).body

License

Please see LICENSE for licensing details.

About

An Elixir WeChat Media Platform Authentication Client Library

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages